34 điểm bởi GN⁺ 2025-03-13 | 8 bình luận | Chia sẻ qua WhatsApp
  • Có những tuyên bố phóng đại về các công cụ lập trình AI
    • Tuyên bố có thể làm ra một SaaS chỉ trong 3 ngày vs. tuyên bố nó hoàn toàn vô dụng → cả hai nhiều khả năng đều là phóng đại
  • Cursor đã thay đổi hoàn toàn cách tôi viết code, nhưng vẫn còn vấn đề
  • Tôi muốn chia sẻ kinh nghiệm có được từ góc nhìn hoài nghi về các công cụ lập trình AI

Thiết lập CursorRules

  • Nếu không có file .cursorrules thì rất dễ lãng phí thời gian
    • Hiện nay nó đã được đổi thành file .mdcCMD + Shift + P → có thể tạo bằng New Cursor Rule
    • Mất khoảng 10 phút để thiết lập xong → có thể tiết kiệm hàng giờ
  • Thiết lập quy tắc phù hợp với tech stack
    • Chọn quy tắc tối ưu từ bộ sưu tập Cursor Rules
    • Bắt đầu với số quy tắc tối thiểu rồi mở rộng dần → quá nhiều quy tắc có thể làm giảm hiệu năng
  • Thêm các vấn đề lặp đi lặp lại vào quy tắc để xử lý
    • Với các vấn đề xảy ra nhiều lần, hãy thêm vào quy tắc để AI tự động sửa
    • Ví dụ: vấn đề nullish coalescing (??) trong JS → thêm vào quy tắc rồi giải quyết được
  • Bổ sung thông tin dự án và mô tả cấu trúc code
    • Ghi rõ mô tả dự án và cấu trúc code ở đầu file
    • Nếu có cấu trúc file hoặc cách viết code cụ thể, hãy ghi thật rõ ràng

Cách lấy đầu ra tốt nhất

  • Chìa khóa để cải thiện chất lượng đầu ra là cung cấp ngữ cảnh
    • Nếu có hàm cần thiết hoặc quy trình tương tự, hãy cho AI biết trước
    • Không nhất thiết phải nói đúng tên hàm → mục tiêu là giúp tác vụ lập trình dễ hơn
  • Cung cấp ví dụ
    • Đưa các gợi ý như see @schedule.ts @utils.ts @ScheduleHeader.tsx
    • Có thể tham chiếu đoạn code được viết theo cách tương tự
  • AI được huấn luyện trên code ngẫu nhiên
    • Các yêu cầu riêng của từng dự án cần được truyền đạt rõ ràng thì mới cải thiện được hiệu quả

Một số mẹo nhanh

  • Composer (nay đã đổi thành Agent) → phù hợp với các thay đổi đơn giản, ít ảnh hưởng
  • Chat (Ask) → phù hợp với hầu hết các tác vụ khác
    • Tự áp dụng thay đổi thủ công → giúp hiểu code và chỉnh sửa chính xác hơn
  • Đừng mù quáng tin vào code
    • Cần xem lại và chỉnh sửa code do AI tạo ra
  • Định kỳ refactor thủ công phần code cốt lõi
    • Phát hiện và sửa các khoảng trống trong code → từ đó chất lượng code do AI tạo ra cũng có thể được cải thiện
  • Hãy hỏi "Đây có phải cách tốt nhất không?" hoặc "Đã cân nhắc cách khác chưa?"
  • Nhận biết khi nào tự giải quyết thủ công sẽ tốt hơn
  • Cẩn thận khi sửa bug
    • Ngoài những bug nhỏ, AI thường gặp khó khăn khi sửa lỗi
    • Có khả năng gây hỏng code nghiêm trọng
  • Với tác vụ quan trọng, hãy để AI đặt câu hỏi trước
    • Hỏi "Bạn đã hiểu hoàn toàn chưa?" rồi mới bắt đầu viết code

Kết luận

  • Ưu điểm của lập trình với AI
    • Vẫn có thể viết code ngay cả khi não đã mệt
    • Có thể giải quyết cả những vấn đề vốn thường khó xử lý
  • Giới hạn của lập trình với AI
    • Nó có thể nói "Ừ, giờ tôi đã hiểu vấn đề rồi" nhưng cuối cùng lại làm tình hình tệ hơn
    • Điều quan trọng là học cách tận dụng AI cho tốt → AI sẽ không biến mất, nên cần dùng nó như một công cụ hiệu quả
  • Các lập trình viên junior cần cẩn trọng : việc dùng AI có thể làm kỹ năng viết code bị suy yếu
  • Hiệu năng của AI khác nhau rất nhiều tùy theo chủ đề lập trình và tech stack
    → Nếu hiệu năng AI cứ tệ mãi, rất có thể đó không phải lỗi của bạn

8 bình luận

 
colus001 2025-03-14

Tôi cũng muốn giới thiệu trang web https://cursor.directory/ dành cho các quy tắc của Cursor.

 
kipsong133 2025-03-14

Mình thấy khá nhiều ý kiến cho rằng các lập trình viên junior bị giảm năng lực vì dùng AI, nên nếu có bài viết nào liên quan xem chuyện đó có thật không thì sẽ rất thú vị.
Mình đã đọc bài rất hay :)

 
tominam2 2025-03-16

Nghe với tôi giống như câu chuyện dùng phím tắt trên điện thoại sẽ làm giảm trí nhớ vậy.
Khả năng trong việc lập trình đâu phải là nhớ để không quên những thứ quá hiển nhiên.

 
kipsong133 2025-03-16

Tôi cũng đồng ý. Việc thuộc lòng interface của framework không phải là năng lực phát triển.

 
seoseonyu 2025-03-14

Cursor thì tốt thật... nhưng với kiểu người như tôi làm việc trên nhiều thiết bị
thì thấy tiếc là không có tính năng đồng bộ cài đặt.

Nghe nói cũng có mẹo đồng bộ bằng cách tạo symbolic link cho extension hoặc chính file cài đặt
từ ổ đĩa mạng,
nhưng vì trên VSCode chỉ cần bấm cái là đồng bộ được nên giờ phải qua quy trình đó cũng thấy phiền.

 
pcj9024 2025-03-13

Tôi không dùng nhiều vì đã thay Cmd+K của vscode bằng Cmd+R, nhưng thấy mọi người liên tục chia sẻ trải nghiệm năng suất tăng vọt nên giờ cũng đang phân vân có nên chuyển sang không.

 
bungker 2025-03-14

Đã chuyển từ VS Code sau 5 năm sử dụng, và thấy rất ổn.

 
GN⁺ 2025-03-13
Ý kiến Hacker News
  • Ban lãnh đạo kỹ thuật của công ty đang thúc đẩy Cursor rất mạnh. Nó tốt để xử lý các ticket nhỏ và cải thiện sản phẩm, nhưng không phù hợp với các công việc nặng

    • Việc phụ thuộc vào Cursor đang làm suy yếu khả năng suy luận và lập trình của các kỹ sư junior
    • Cá nhân tôi rất lo ngại về xung đột lợi ích khi Cursor quyết định file nào sẽ được thêm vào ngữ cảnh và tính phí dựa trên kích thước của chúng
    • Giống như nhiều sản phẩm khác, lúc đầu thì rẻ nhưng khi đã phụ thuộc vào nó thì sau này sẽ trở nên đắt đỏ
  • Mô hình kinh doanh hiện tại của Cursor tạo ra một xung đột căn bản giữa người dùng và sự lành mạnh tài chính của công ty

    • Những vấn đề này đang xuất hiện khi các nhà cung cấp LLM cố mở rộng bằng tính toán thời gian suy luận
    • Cursor đặc biệt đang cố giảm chi phí suy luận thông qua việc cắt tỉa ngữ cảnh
    • Khi "đính kèm" một file vào cuộc trò chuyện, Cursor sẽ không còn đưa mã của file đó vào prompt nữa
    • Thay vào đó, nó thực hiện các lời gọi hàm để mở file và đọc một phần mã cho đến khi mô hình cảm thấy đã có đủ thông tin
    • Tuy nhiên, nếu chỉ giới hạn suy luận trong prompt ban đầu, mô hình sẽ suy luận chỉ từ chính prompt đó mà không truy cập các file đã đính kèm
    • Việc thực hiện lời gọi hàm để lấy thêm ngữ cảnh sau khi suy luận khiến ý nghĩa của việc "suy nghĩ" gần như bị vô hiệu hoàn toàn
    • Điều này khiến mô hình tạo ra các kế hoạch thiếu nhất quán và các chỉnh sửa mang tính phỏng đoán, giải thích cho hành vi sửa quá mức kỳ lạ của Claude
    • Cursor có mọi động lực để giảm tối thiểu nỗ lực suy luận của o3-mini và Claude 3.7 nhằm giảm tải cho máy chủ
  • Cursor được ca ngợi là một trong những câu chuyện tăng trưởng SaaS vĩ đại nhất, nhưng mô hình kinh doanh dùng không giới hạn với giá $20/tháng đặt họ vào tình thế tệ hại

  • Mọi người dùng đều nên cân nhắc ngôn ngữ/ngăn xếp của mình. Có khả năng Cursor không hoạt động tốt như nhau với mọi ngôn ngữ

    • Tôi đang làm việc trên một monorepo Next.js/Typescript/Solidity với nhiều app và package, và nó xử lý được gần như mọi thứ
    • Tôi đã dùng khoảng một tháng và có cảm giác vẫn còn khai thác được nhiều hơn nữa
  • Sau khi dùng Cursor một tháng, đến ngày mất mạng tôi nhận ra mình bắt đầu quên cách viết code cho đúng

  • UX của các công cụ này chủ yếu bị giới hạn bởi khả năng xây dựng đầy đủ ngữ cảnh của công việc mà người dùng đang muốn làm

    • Gần đây tôi thử aider và đó là một trải nghiệm khá bực bội
    • Nó liên tục yêu cầu tôi "thêm" các file trong thư mục, nhưng bản thân nó lại không thể tự thêm
    • Nó không nhận ra các thay đổi file thủ công, tạo commit với code bị lỗi, và còn những vấn đề khác
    • Có vẻ việc cung cấp toàn bộ ngữ cảnh cho AI còn quan trọng hơn chất lượng mô hình
    • Các cửa sổ ngữ cảnh lớn rất tốn kém nên nhiều công cụ lúc nào cũng cố tiết kiệm
    • Về lâu dài, không tiết kiệm theo kiểu đó sẽ có giá trị hơn
    • Tải toàn bộ project có thể tốn 2-3 đô cho mỗi câu hỏi, nhưng nếu chi phí giảm 20 lần thì tôi sẽ không bận tâm
  • Các mô hình lớn hỗ trợ cửa sổ ngữ cảnh rất lớn ở mức hàng triệu đến hàng chục triệu token, có chi phí tương đương giá một chiếc ô tô cỡ nhỏ và tiêu tốn nhiều năng lượng

    • Nvidia giàu lên nhờ biên lợi nhuận cao của GPU. Theo thời gian giá sẽ giảm
    • Tôi lạc quan rằng nhiều thứ sẽ cải thiện rất nhanh
  • Cursor hữu ích cho việc tạo prototype và phát triển MVP, nhưng khi codebase lớn dần thì nó gặp khó khăn

    • Khi file quá lớn hoặc số lượng file nhiều lên, cửa sổ ngữ cảnh sẽ đầy và gây ra vấn đề về tính nhất quán
    • Chọn thủ công các file hoặc snippet liên quan có thể cho kết quả tốt hơn, nhưng đến mức đó thì cũng không khác mấy so với dùng giao diện web
  • Tổng hợp ý kiến của các bình luận viên khác, tôi có cảm giác dùng Cursor là một ý tưởng tồi

    • Nó là SaaS mã nguồn đóng, và chất lượng dịch vụ có thể dao động theo từng ngày
    • Tôi không tìm ra cách ngăn việc gửi file .env dưới dạng văn bản thuần
  • Tôi đã bối rối khi đọc lời khuyên kiểu "hãy học khi nào nên giải quyết vấn đề thủ công"

    • Nó giống như lời khuyên rỗng tuếch "mua rẻ bán đắt" dành cho nhà đầu tư
  • Tôi đã thử Cursor vài lần, nhưng lúc nào cũng có cùng một lời phàn nàn

    • Tại sao họ lại fork VS Code, trong khi hoàn toàn có thể làm nó thành extension như Copilot
    • Một số extension của VSCode không hoạt động, phải thiết lập lại mọi thứ, và phải thêm lại workspace
    • So với Copilot, lợi ích nhận được không lớn hơn bao nhiêu