- 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
.mdc → CMD + 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
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.
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 :)
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.
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.
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.
Tôi không dùng nhiều vì đã thay
Cmd+Kcủa vscode bằngCmd+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.Đã chuyển từ VS Code sau 5 năm sử dụng, và thấy rất ổn.
Ý 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
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
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ữ
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
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
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
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
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"
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