AI viết code: chọn công cụ nào và 6 cách kiểm tra kết quả


Viết một hàm trong mười giây là chuyện AI làm được từ lâu. Câu hỏi thật sự với AI viết code là làm sao để đoạn code đó chạy đúng trong dự án của bạn, và làm sao biết chỗ nào nó sai. Bài này trả lời cả hai.

Các công cụ chính, khác nhau ở đâu

Công cụ Dạng Mạnh nhất ở Hợp với
Claude Chat + CLI cho lập trình Code dài, sửa nhiều file, giải thích rõ Việc phức tạp, refactor
ChatGPT Chat Hỏi đáp nhanh, giải thích lỗi Người mới, tra cứu
Gemini Chat, gắn hệ sinh thái Google Đọc file lớn, gợi ý trong Colab Xử lý dữ liệu, notebook
GitHub Copilot Gợi ý ngay trong editor Tự hoàn thành dòng, code lặp lại Gõ code hằng ngày
Cursor Editor có AI tích hợp Sửa theo ngữ cảnh cả dự án Làm việc trên codebase thật

Cách chọn gọn nhất: chỉ hỏi đáp thì một công cụ chat là đủ. Gõ code mỗi ngày thì lấy thêm một công cụ gợi ý trong editor. Phải sửa nhiều file trong dự án có sẵn thì dùng công cụ hiểu được cả codebase. Đừng cài cả năm thứ cùng lúc.

Mô tả yêu cầu thế nào để code chạy được

Chất lượng code phụ thuộc gần như toàn bộ vào lượng ngữ cảnh bạn đưa vào. Một yêu cầu đầy đủ có sáu phần:

  1. Ngôn ngữ và phiên bản. "Python 3.11", "Node 20", "PHP 8.2". Thiếu phần này là nhận code dùng cú pháp lỗi thời.
  2. Thư viện được phép dùng. "Chỉ dùng thư viện chuẩn" hoặc "dự án đã có axios, đừng thêm gì mới". Nếu không, nó sẽ tự thêm phụ thuộc bạn không muốn.
  3. Đầu vào và đầu ra cụ thể. Dán một mẫu dữ liệu thật, kèm kết quả mong đợi. Đây là phần có tác dụng lớn nhất mà nhiều người bỏ qua.
  4. Ràng buộc. File có thể nặng vài GB, hàm phải chạy bất đồng bộ, không được ghi ra ổ đĩa.
  5. Code hiện có xung quanh. Dán hàm liên quan, hoặc phần khai báo kiểu dữ liệu. AI không đoán được quy ước dự án của bạn.
  6. Cách xử lý lỗi mong muốn. "Ném exception" hay "trả về null" là hai kết quả rất khác nhau.

Vài thói quen giúp nhiều:

  • Chia nhỏ. Một hàm mỗi lượt. Bảo nó viết cả module một lần thì phần nào cũng nông.
  • Dán nguyên văn thông báo lỗi. Stack trace đầy đủ giúp nó tìm đúng chỗ.
  • Hỏi phương án trước khi hỏi code. "Có mấy cách làm việc này, ưu nhược điểm từng cách?"
  • Bảo nó tự chỉ ra điểm yếu. "Đoạn code trên có thể hỏng trong trường hợp nào?" Câu này thường lòi ra lỗ hổng thật.

Sáu cách kiểm tra code AI viết

  1. Đọc hết trước khi chạy. Không hiểu dòng nào thì hỏi lại. Chạy code mình không hiểu là cách nhanh nhất để mất cả buổi đi tìm bug.
  2. Kiểm tra tên hàm và tham số có thật không. Đây là lỗi phổ biến nhất: AI bịa ra hàm nghe rất hợp lý nhưng thư viện không hề có. Tra tài liệu chính thức của thư viện.
  3. Chạy trên dữ liệu biên. Chuỗi rỗng, số 0, số âm, danh sách rỗng, ký tự tiếng Việt có dấu, giá trị null. Code AI viết thường đúng ở trường hợp bình thường và vỡ ở trường hợp biên.
  4. Viết test. Bạn tự nghĩ ra các tình huống cần kiểm, rồi mới nhờ AI viết test theo đó. Để nó tự nghĩ tình huống thì nó chỉ test lại đúng những gì nó vừa viết.
  5. Soi phần bảo mật. Câu truy vấn nối chuỗi, khoá API viết thẳng trong code, dữ liệu người dùng chưa lọc, quyền file quá rộng. Đây là nhóm lỗi AI hay mắc mà trình duyệt không báo.
  6. Xem hiệu năng ở quy mô thật. Vòng lặp lồng nhau và truy vấn trong vòng lặp chạy tốt với 10 bản ghi và sập với 100 nghìn.

Khi nào không nên tin AI

Có những chỗ nên tự viết hoặc bắt buộc phải có người rà kỹ:

  • Xác thực, phân quyền, mã hoá. Sai ở đây là sự cố bảo mật thật, không phải bug.
  • Xử lý tiền và thanh toán. Làm tròn số thực, tiền tệ, thuế — sai một chỗ là sai sổ sách.
  • Thao tác xoá hoặc ghi đè dữ liệu. Đọc từng dòng lệnh migration và script dọn dữ liệu trước khi chạy trên môi trường thật.
  • Thư viện hoặc API vừa đổi. Kiến thức của mô hình có mốc thời gian, nó rất tự tin khi trả lời về phiên bản đã thay đổi. Luôn đối chiếu tài liệu chính thức.
  • Code phải tuân thủ quy định pháp lý hoặc nội bộ. AI không biết quy định công ty bạn.

Dấu hiệu cảnh báo nên dừng lại: AI khẳng định chắc nịch mà không kèm điều kiện, đưa ra hàm bạn chưa từng nghe, hoặc sửa cùng một lỗi ba lần mà lần nào cũng "giờ thì chắc chắn đúng rồi". Lúc đó nên tự đọc tài liệu thay vì hỏi vòng thứ tư.

Cũng đừng dán code nội bộ, khoá bí mật hay dữ liệu khách hàng vào công cụ công cộng. Thay giá trị thật bằng dữ liệu giả trước khi hỏi.

Học lập trình bằng AI có được không

Được, nhưng dùng sai cách thì phản tác dụng. Khác biệt nằm ở chỗ bạn dùng nó để làm hộ hay để dạy.

Cách dùng có hại: hỏi bài tập, dán câu trả lời, nộp. Khả năng đọc hiểu code lên còn khả năng tự viết đứng yên, đến lúc gặp bug thật là lộ ngay.

Cách dùng có ích:

  • Tự viết trước, rồi hỏi "code này có vấn đề gì, làm sao tốt hơn".
  • Nhờ giải thích code người khác viết, từng dòng một.
  • Nhờ ra bài tập theo chủ đề bạn đang yếu, rồi tự làm.
  • Gặp lỗi thì hỏi vì sao lỗi, không hỏi sửa hộ tôi.
  • Nhờ nó đóng vai người phản biện thiết kế của bạn.

Nguyên tắc gọn: nếu bạn không viết lại được đoạn code đó khi tắt AI đi, bạn chưa học được gì. Nếu bạn học kèm nhiều môn khác, AI học tập miễn phí liệt kê thêm vài công cụ hợp cho việc tự học.

Câu hỏi thường gặp

AI viết code có thay thế lập trình viên không?

Chưa. Nó viết nhanh phần code lặp lại và tra cứu tốt, nhưng không tự biết yêu cầu nghiệp vụ, không chịu trách nhiệm khi hệ thống hỏng và không quyết định được kiến trúc. Vai trò thực tế của nó gần với một người phụ việc nhanh nhưng cần được rà lại.

Công cụ nào tốt nhất cho người mới học?

Một công cụ chat bất kỳ trong bảng trên là đủ, vì thứ người mới cần nhất là giải thích chứ không phải tự hoàn thành code. Chỉ nên thêm công cụ gợi ý trong editor sau khi bạn đã tự viết được, kẻo nó gõ hộ trước khi bạn kịp nghĩ.

Code AI viết có bị lỗi bản quyền không?

Rủi ro tồn tại nhưng thấp với code thông thường, cao hơn khi đoạn code dài và giống hệt một dự án mã nguồn mở nổi tiếng. Trong môi trường doanh nghiệp, hãy theo chính sách nội bộ và tránh dán nguyên khối code dài không rà soát.

Vì sao AI hay bịa ra tên hàm không tồn tại?

Vì nó sinh ra thứ có vẻ đúng dựa trên mẫu đã thấy, chứ không tra cứu thư viện lúc trả lời. Tên bịa thường nghe rất hợp lý nên dễ lọt. Cách kiểm nhanh nhất là tra thẳng tài liệu chính thức của thư viện đó.

Có nên để AI sửa trực tiếp trên dự án thật không?

Chỉ khi dự án đã có git và bạn làm trên nhánh riêng. Xem diff từng thay đổi trước khi commit, và đừng để nó chạy lệnh xoá file hay đổi cấu hình hệ thống mà bạn chưa đọc.

Tóm lại

AI viết code có ích nhất khi bạn đã biết mình muốn gì và mô tả được rõ ràng. Đưa đủ ngữ cảnh, chia nhỏ yêu cầu, và luôn kiểm ba thứ: hàm có thật không, trường hợp biên có vỡ không, có lỗ hổng bảo mật nào không.

Đọc thêm: ChatGPT tiếng ViệtAI miễn phí tốt nhất hiện nay.