Một phong trào đang phát triển trong cộng đồng lập trình viên đang thách thức lời khuyên phổ biến về việc liên tục tinh chỉnh các prompt AI để tạo code. Thay vào đó, họ ủng hộ một phương pháp thực hành hơn, kết hợp kỹ năng lập trình truyền thống với sự hỗ trợ chiến lược từ AI.
Cuộc tranh luận tập trung vào cách các lập trình viên nên tương tác với các công cụ lập trình AI như Claude , Cursor , và GitHub Copilot . Trong khi nhiều người đã chấp nhận ý tưởng lập trình bằng tiếng Anh thông qua các prompt chi tiết, các lập trình viên có kinh nghiệm nhận thấy cách tiếp cận này không hiệu quả và phản tác dụng.
Vấn Đề Với Việc Tinh Chỉnh Prompt Vô Tận
Nhiều lập trình viên báo cáo rằng họ dành quá nhiều thời gian để cố gắng hoàn thiện các prompt AI của mình, chỉ để nhận được kết quả tầm thường. Cộng đồng đã xác định được một số vấn đề khi quá phụ thuộc vào kỹ thuật prompt engineering. Đầu tiên, nó tạo ra một quy trình làm việc không chính xác và chậm chạp, thường dẫn đến sự thất vọng. Thứ hai, nó có thể khiến các lập trình viên mất liên lạc với code thực tế mà họ phải hiểu và bảo trì.
Một lập trình viên đã chia sẻ kinh nghiệm của họ với các tính năng tự động hoàn thành AI, lưu ý rằng những gợi ý liên tục trở thành sự phân tâm thay vì sự trợ giúp. Họ thấy mình dành nhiều thời gian hơn để đọc các gợi ý do AI tạo ra thay vì thực sự suy nghĩ về logic code, cuối cùng quyết định tắt hoàn toàn tính năng này.
Một Phương Pháp Cân Bằng Hơn Xuất Hiện
Cộng đồng lập trình viên đang hội tụ về một phương pháp lai ghép coi AI như một lập trình viên junior thay vì một giải pháp ma thuật. Cách tiếp cận này bao gồm việc viết cấu trúc code ban đầu, các thành phần quan trọng, hoặc các phác thảo chi tiết, sau đó để AI lấp đầy khoảng trống hoặc xử lý các tác vụ thường lệ.
Một số chiến lược hiệu quả đã xuất hiện từ các cuộc thảo luận cộng đồng. Các lập trình viên yêu cầu AI tạo các phiên bản ban đầu và sau đó tự mình tái cấu trúc kết quả. Những người khác viết logic cốt lõi trước và sử dụng AI cho boilerplate code. Một số tạo ra các phác thảo code chi tiết và để AI thực hiện các chi tiết cụ thể, trong khi những người khác sử dụng AI chủ yếu để tra cứu API và cú pháp không quen thuộc.
Tôi sử dụng AI như một người bạn đồng hành có thể tra cứu API và thuật toán rất nhanh, hoặc như một trình soạn thảo văn bản rất thông minh hiểu về refactoring, DRY, v.v. nhưng tôi vẫn quyết định kiến trúc và viết các test.
Các Chiến Lược Lập Trình AI Hiệu Quả:
- Yêu cầu AI tạo phiên bản ban đầu, sau đó tái cấu trúc thủ công
- Viết logic cốt lõi trước, sử dụng AI cho code boilerplate
- Tạo khung code, để AI điền các chi tiết triển khai
- Sử dụng AI để tra cứu API và cú pháp chưa quen thuộc
- Coi AI như một lập trình viên junior cần được giám sát
Yếu Tố Học Tập và Hiểu Biết
Một mối quan tâm đáng kể được các lập trình viên nêu ra là tác động đến việc phát triển kỹ năng và hiểu biết code. Khi AI tạo ra các khối code lớn, các lập trình viên phải dành thời gian đáng kể để đọc và hiểu đầu ra trước khi họ có thể sử dụng nó một cách an toàn. Nhiều người thấy rằng họ có thể viết code nhanh hơn so với việc đọc và xác minh code do AI tạo ra.
Điều này đã dẫn đến một quan sát thú vị về sự chú ý và tập trung. Một số lập trình viên báo cáo rằng việc tắt tính năng tự động hoàn thành AI đã giúp họ nhớ nhiều hơn về codebase của mình và tham gia sâu hơn với code họ đang viết. Việc chuyển đổi ngữ cảnh liên tục giữa suy nghĩ của chính họ và các gợi ý AI đã chứng tỏ là gây mệt mỏi về mặt tinh thần.
Thách Thức Triển Khai Thực Tế
Cộng đồng cũng đã nêu bật các vấn đề thực tế với các công cụ lập trình AI hiện tại. Các tính năng tự động hoàn thành thường can thiệp vào các tác vụ cơ bản như thụt lề, yêu cầu các lập trình viên phải gán lại phím tắt hoặc phát triển các giải pháp thay thế. Các tính năng format-on-save có thể tạo ra các phức tạp bổ sung khi làm việc với các codebase sử dụng các tiêu chuẩn định dạng khác nhau.
Mặc dù có những thách thức này, các lập trình viên không từ chối hoàn toàn các công cụ AI. Thay vào đó, họ đang tìm ra các cách sử dụng có mục tiêu hơn, chẳng hạn như làm việc với các API không quen thuộc, tạo boilerplate code, hoặc nhận các ví dụ nhanh cho các ngôn ngữ lập trình hoặc framework mới.
Các vấn đề thường gặp với công cụ lập trình AI:
- Tính năng tự động hoàn thành can thiệp vào việc thụt lề cơ bản (xung đột phím TAB)
- Sự chuyển đổi chú ý giữa suy nghĩ cá nhân và gợi ý của AI
- Suy giảm ngữ cảnh trong các cuộc hội thoại dài với AI
- Các phức tạp khi định dạng tự động khi lưu với các tiêu chuẩn định dạng hỗn hợp
- Rò rỉ tài nguyên và lỗi tinh vi trong mã được tạo ra
Tương Lai của Phát Triển Hỗ Trợ AI
Cuộc thảo luận tiết lộ một hiểu biết trưởng thành về vai trò của AI trong phát triển phần mềm. Thay vì coi nó như một sự thay thế cho kỹ năng lập trình, các lập trình viên thành công đang coi nó như một công cụ mạnh mẽ nhưng có hạn chế, đòi hỏi quản lý và giám sát cẩn thận.
Sự đồng thuận cho thấy rằng cách tiếp cận hiệu quả nhất kết hợp chuyên môn lập trình truyền thống với sự hỗ trợ AI có chiến lược. Các lập trình viên duy trì kỹ năng lập trình của họ trong khi có chọn lọc sử dụng AI cho các tác vụ phù hợp dường như đạt được kết quả tốt nhất, tránh cả sự không hiệu quả của việc tinh chỉnh prompt vô tận và các rủi ro của việc quá phụ thuộc vào tạo code tự động.
Sự thay đổi trong tư duy này đại diện cho một cách tiếp cận bền vững hơn đối với phát triển hỗ trợ AI, một cách tiếp cận bảo tồn các kỹ năng thiết yếu mà các lập trình viên cần trong khi tận dụng điểm mạnh của AI trong các ngữ cảnh phù hợp.
Tham khảo: Write the damn code
