EXPLORINEER
vi

Hatena

Con người nên dành thời gian cho đâu

Phần mềmLần đầu xuất hiện 135 điểm


Một kỹ sư người Nhật hỏi: khi AI viết gần hết code, con người nên dùng thời gian vào đâu? Câu trả lời chính là việc con người duyệt lại (review) đã trở thành điểm nghẽn, nên thời gian đó nên dành cho những quyết định quan trọng nhất.

Chuyện gì đã xảy ra?

Người viết bài hầu như không còn tự viết code nữa. Phần lớn công việc của họ là đọc và duyệt lại. Họ xem các pull request (PR, tức là đề xuất thay đổi code) từ đồng nghiệp và các file kế hoạch do AI agent viết. Vì AI thường viết cả code lẫn phần trả lời khi duyệt, con người phải chuyển tin nhắn qua lại giữa các công cụ AI. Người viết đặt câu hỏi: thời gian của con người nên được dùng vào việc gì là tốt nhất?

Các ý kiến và mô hình tham khảo

Simon Willison cho rằng code do máy tạo ra phải được kiểm tra, nên giới hạn thật sự là tốc độ con người có thể duyệt. Dan Shapiro có mô hình Năm Cấp Độ, đi từ gợi ý văn bản đơn giản (Cấp 0) đến một 'nhà máy tối' tự động hoàn toàn (Cấp 5). Ở Cấp 3, con người chỉ đọc diff (danh sách các thay đổi code). Ở Cấp 4, con người viết đặc tả và duyệt kế hoạch thay vì đọc code.

Cách xếp hạng đơn giản

  • Thời gian của con người là đắt nhất.
  • Thời gian của LLM (mô hình ngôn ngữ lớn) đứng thứ hai.
  • Kiểm tra bằng máy là rẻ nhất.
  • Việc gì chương trình kiểm tra được thì nên giao cho chương trình, ví dụ công cụ chính sách conftest trong kho hạ tầng của người viết.
  • Con người và LLM chỉ nên xử lý những việc cần phán đoán.

Vì sao điều này quan trọng?

Khi AI viết code nhanh, việc duyệt code trở thành chỗ chậm nhất. Nếu con người vẫn phải duyệt mọi PR, việc ít bình luận hơn chưa chắc đã làm giảm thời gian chờ. Người viết cũng lưu ý rằng chương trình có thể không bắt được mọi rủi ro trong code ứng dụng. Duyệt theo mức độ rủi ro là một ý tưởng riêng, cần thử nghiệm thêm. Duyệt kế hoạch có thể tốt hơn duyệt code dài, vì một dòng kế hoạch sai có thể kéo theo hàng trăm dòng code sai.

Cần theo dõi điều gì?

  • Kiểm tra bằng chương trình có đánh giá được rủi ro trong code ứng dụng, không chỉ trong hạ tầng hay không.
  • Quy tắc duyệt theo rủi ro có giảm thời gian review mà không làm tăng sự cố hay không.
  • Việc duyệt kế hoạch có hiệu quả trong thực tế không, vì file kế hoạch có thể được lưu một thời gian rồi bị xóa.
  • Khi một lần kiểm tra không tìm thấy gì, làm sao nhóm biết đó là code tốt hay là hệ thống kiểm tra đã bỏ sót lỗi?

Chú giải

pull request
Đề xuất đưa một thay đổi code vào dự án để người khác kiểm tra trước khi gộp.
diff
Danh sách các dòng code đã thêm, sửa hoặc xóa so với phiên bản trước.
LLM
Mô hình ngôn ngữ lớn, loại AI có thể đọc và viết văn bản hoặc code.
AI agent
Chương trình AI có thể tự làm nhiều bước để hoàn thành một nhiệm vụ.
conftest
Công cụ kiểm tra tự động các file cấu hình theo quy tắc đã đặt sẵn.

Nguồn: Đọc bản gốc trên Hatena ↗

Bài giải thích này được AI viết lại bằng lời dễ hiểu từ bài gốc. Hãy kiểm tra bài gốc để xác nhận thông tin.