AI viết nhanh và nghe rất tự tin. Danh sách 15 điểm, đọc trong 15 phút, giúp bạn duyệt đúng chỗ trước khi bấm merge.
Tóm lại: đọc ý định trước, an toàn kế tiếp, kiểm thử rồi mới bảo trì.
Lưu ý: các tỉ lệ đến từ vài nghiên cứu với phạm vi khác nhau, nên dùng như tín hiệu, không phải con số cố định.
Trong 1.689 chương trình do Copilot sinh ra ở tình huống nhạy cảm, khoảng 40% có lỗ hổng.
Mẫu code do AI sinh có lỗi bảo mật trong bài kiểm; riêng Java trên 70%.
Thời gian duyệt mỗi thay đổi ở nhóm dùng AI nhiều. Số liệu của hãng bán công cụ đo lường.
Khoảng một phần năm gợi ý thư viện là thư viện không có thật, và nhiều tên lặp lại.
Dấu hiệu: thay đổi làm thêm nhiều thứ không ai nhờ. Cách kiểm: đọc mô tả, đánh dấu từng yêu cầu đã được đáp ứng.
Dấu hiệu: đổi hàng chục tệp cho một lỗi nhỏ. Cách kiểm: xem danh sách tệp, hỏi tệp nào thật sự cần.
Dấu hiệu: code cho rằng dữ liệu luôn sạch. Cách kiểm: hỏi "nếu rỗng, nếu rất lớn, nếu sai kiểu thì sao?"
Rỗng, âm, rất dài, ký tự lạ.
Mạng chậm hoặc đứt thì chương trình làm gì?
Nối chuỗi vào truy vấn, in dữ liệu nhạy cảm ra nhật ký.
Tên thư viện lạ: tra trên kho chính thức.
Khóa, mật khẩu, quyền rộng hơn cần thiết.
Test chỉ chạy qua dòng code mà không so kết quả thì vô nghĩa.
Dễ viết khớp với code, không khớp với yêu cầu. Thử sửa code cho sai và xem test có đỏ không.
Mở ra, bấm thử như người dùng. Giống bài học ở nhật ký đo: mắt thấy lỗi mà test không thấy.
Tên rõ, hàm ngắn, ít lồng nhau.
AI hay chép đoạn quen thay vì dùng hàm sẵn có.
Đặt tên, cấu trúc thư mục, cách xử lý lỗi giống phần còn lại.
Bỏ đoạn code chết, cập nhật tài liệu liên quan.
Thay đổi lớn hơn 400 dòng: yêu cầu chia nhỏ trước rồi mới duyệt. Vượt sức người đọc thì không điểm kiểm nào cứu được.
Mã áp dụng cho đơn trên 500 nghìn, bỏ sót đơn đúng bằng 500 nghìn. Cả 5 test đều thử 600 nghìn.
Test xanh chỉ nói code khớp test. Còn khớp yêu cầu hay không là việc của người đọc.
Kẻ xấu có thể đăng một gói trùng tên chứa mã độc. Ai cài theo gợi ý sẽ cài luôn nó.
Tên lạ thì tra trước khi cài. Xem ngày đăng, số lượt tải, kho mã nguồn.
| Mục | Viết gì |
|---|---|
| Mục tiêu | Một câu: thay đổi này giải quyết gì |
| Không làm | Những gì cố ý để ngoài |
| Cách kiểm | Lệnh chạy và bước bấm thử |
| AI làm phần nào | Đoạn nào AI viết, đoạn nào tay |
| Chỗ chưa chắc | Nơi người duyệt nên soi kỹ |
Đoạn "AI làm phần nào" không để đổ lỗi. Nó chỉ chỉ ra nơi cần đọc kỹ hơn.
Có nghiên cứu cho thấy mô hình hay chiều theo người hỏi. Hỏi "code này có ổn không?" dễ nhận câu "ổn". Hỏi "tìm ba chỗ có thể sai" tốt hơn.
Cũng đừng lạm dụng: duyệt quá kỹ mọi dòng nhỏ làm mất lợi thế tốc độ. Chọn độ kỹ theo rủi ro.
| Loại thay đổi | Độ kỹ |
|---|---|
| Chữ trên giao diện, tài liệu | Lướt nhanh, chạy thử |
| Tính năng trong nhóm nhỏ | Đủ 15 điểm, ưu tiên A, B, C |
| Thanh toán, quyền, dữ liệu cá nhân | Hai người duyệt, kiểm thử bảo mật |
| Thay đổi hạ tầng, xóa dữ liệu | Không để AI tự chạy, người xác nhận từng bước |
Khớp yêu cầu, phạm vi gọn, nêu giả định.
Đầu vào lạ, lỗi mạng, bảo mật, thư viện, bí mật.
Test kiểm gì, phá thử code, chạy thật.
Dễ đọc, không lặp, hợp dự án, dọn dẹp.
Hãy bắt đầu bằng ba điểm đầu: yêu cầu khớp, phạm vi gọn, giả định rõ.