Lời hứa về quy trình phát triển được hỗ trợ bởi AI đang phải đối mặt với sự xem xét nghiêm túc khi các lập trình viên báo cáo về những thất vọng lan rộng với các công cụ hiện tại. Một thí nghiệm gần đây theo dõi hai tuần phát triển ứng dụng hoàn toàn được hỗ trợ bởi AI đã khơi dậy cuộc thảo luận sôi nổi trong cộng đồng về những hạn chế thực tế của các mô hình ngôn ngữ lớn (LLMs) trong các tác vụ lập trình.
Vấn đề ngữ cảnh gây khó khăn cho việc phát triển AI
Vấn đề dai dẳng nhất mà các lập trình viên gặp phải là khả năng không thể đặt câu hỏi làm rõ của AI khi thiếu thông tin. Không giống như các lập trình viên con người tự nhiên tìm kiếm phản hồi khi yêu cầu không rõ ràng, các công cụ AI đưa ra các giả định thường dẫn đến việc triển khai không chính xác. Điều này tạo ra một chu kỳ bực bội khi các lập trình viên phải cung cấp ngữ cảnh đầy đủ từ đầu, nhưng vẫn phải đối mặt với những lỗi bất ngờ.
Các thành viên cộng đồng báo cáo những trải nghiệm tương tự trên các công cụ và tác vụ khác nhau. Một lập trình viên đã dành hơn một giờ cố gắng lấy các lệnh rsync đơn giản từ ChatGPT, chỉ để nhận được các tham số không hoạt động với phiên bản hệ thống của họ. AI tiếp tục đi vào những con đường khắc phục sự cố thay vì thừa nhận những hạn chế của mình hoặc yêu cầu thông tin cụ thể hơn về thiết lập của người dùng.
Các Hạn Chế Chính Của AI Trong Lập Trình Đã Được Xác Định
- Vấn Đề Ngữ Cảnh: AI không đặt câu hỏi làm rõ khi thông tin bị thiếu
- Trùng Lặp Code: Tạo ra nhiều phiên bản của cùng một thành phần thay vì tái sử dụng code hiện có
- Tương Thích Phiên Bản: Tưởng tượng ra các tham số cho các phiên bản phần mềm cụ thể không có trong dữ liệu huấn luyện
- Gián Đoạn Quy Trình Làm Việc: Phá vỡ luồng công việc của developer với yêu cầu giám sát liên tục
- Vấn Đề 80/20: Dễ dàng có được giải pháp hoạt động 80%, nhưng vẫn cần 80% thời gian để hoàn thiện
Chất lượng mã và khả năng bảo trì bị ảnh hưởng
Mã do AI tạo ra thường thiếu tính trừu tượng và khả năng tái sử dụng mà các lập trình viên có kinh nghiệm mong đợi. Thay vì nhận ra các thành phần và mẫu hiện có, các công cụ AI thường sao chép chức năng qua các dự án. Các lập trình viên báo cáo việc tìm thấy nhiều phiên bản của cùng một thành phần rải rác khắp codebase của họ, tạo ra những cơn ác mộng bảo trì.
Quy tắc 80/20 trở nên đặc biệt rõ ràng với sự hỗ trợ của AI. Trong khi các công cụ có thể nhanh chóng tạo ra mã có vẻ hoạt động, các lập trình viên vẫn dành khoảng 80% thời gian để sửa những không nhất quán, xử lý các trường hợp biên và đảm bảo tích hợp đúng cách với các hệ thống hiện có.
Vấn đề tương thích phiên bản và ảo giác
Một hạn chế kỹ thuật lớn xuất hiện từ các ràng buộc dữ liệu huấn luyện của AI. Khi làm việc với các phiên bản phần mềm cụ thể hoặc APIs được tài liệu hóa kém, các công cụ AI thường xuyên tạo ra ảo giác về các tham số, điểm cuối và chức năng không tồn tại. Vấn đề này đặc biệt nghiêm trọng với các công cụ dòng lệnh nơi các phiên bản khác nhau có yêu cầu cú pháp khác nhau.
Nếu nó đưa cho bạn những cờ sai, tại sao bạn lại cho rằng những giải thích mà nó đưa ra là chính xác? LLMs có thể tạo ra những thứ đó cũng dễ dàng như vậy.
Một số lập trình viên đã tìm ra cách giải quyết bằng cách cung cấp tài liệu hoàn chỉnh trong các prompt của họ, nhưng cách tiếp cận này có thể tiêu thụ hàng triệu token cho những vấn đề tương đối đơn giản, làm dấy lên mối lo ngại về chi phí.
Gián đoạn quy trình làm việc và mất đà
Tính chất tương tác của việc lập trình AI tạo ra những vấn đề quy trình làm việc bất ngờ. Các lập trình viên báo cáo việc mất đi dòng chảy lập trình của họ khi họ phải liên tục giám sát đầu ra của AI để phát hiện lỗi sớm. Nhịp điệu phát triển truyền thống của các giai đoạn tập trung bền vững được thay thế bằng các chu kỳ chú ý phân mảnh của việc tinh chỉnh prompt và xem xét mã.
Nhiều lập trình viên có kinh nghiệm thấy rằng những tác vụ họ có thể hoàn thành nhanh chóng thông qua các phương pháp truyền thống trở thành những bài tập tốn thời gian về kỹ thuật prompt khi thử nghiệm với sự hỗ trợ của AI.
Các trường hợp sử dụng AI hiệu quả trong lập trình (Dựa trên phản hồi từ cộng đồng)
- Tạo đoạn mã (các hàm tiện ích như
chunkify
,clamp
,mapValues
) - Viết test case và khám phá các kịch bản
- Tìm kiếm tài liệu và điều chỉnh ngữ cảnh
- Tạo mã boilerplate
- Chỉnh sửa bản sao cho commit message và viết kỹ thuật
- Rubber duck debugging và brainstorming các giải pháp thay thế
Tìm kiếm điểm cân bằng
Bất chấp những thách thức này, cộng đồng lập trình viên đã xác định các trường hợp sử dụng cụ thể nơi các công cụ AI cung cấp giá trị thực sự. Bao gồm việc tạo mã boilerplate, viết test case, phục vụ như một công cụ tìm kiếm nâng cao cho tài liệu và xử lý các tác vụ lập trình lặp đi lặp lại như các hàm tiện ích.
Sự đồng thuận đang nổi lên coi AI như một trợ lý chuyên biệt thay vì thay thế cho các kỹ năng phát triển truyền thống. Các triển khai thành công có xu hướng liên quan đến các lập trình viên hiểu đủ về công nghệ cơ bản để nhanh chóng xác định và sửa chữa các lỗi do AI tạo ra.
Khi công nghệ tiếp tục phát triển, cộng đồng phát triển vẫn thận trọng lạc quan trong khi duy trì những kỳ vọng thực tế về các hạn chế hiện tại. Chìa khóa dường như là tìm ra sự cân bằng đúng đắn giữa sự hỗ trợ của AI và sự giám sát của con người, thay vì theo đuổi các quy trình phát triển hoàn toàn tự động.
Tham khảo: TO AI OR NOT TO AI
![]() |
---|
Khám phá sự cân bằng giữa hỗ trợ AI và giám sát của con người trong phát triển ứng dụng |