Khi các AI agent ngày càng viết nhiều code trong phát triển phần mềm, một thách thức mới xuất hiện: đảm bảo những người review là con người thực sự hiểu những gì họ đang phê duyệt. PR Quiz GitHub Action đại diện cho một nỗ lực sáng tạo nhằm giải quyết vấn đề LGTM (Looks Good To Me) lan rộng, nơi các developer phê duyệt pull request mà không thực sự hiểu những thay đổi trong code.
Vấn đề LGTM đạt đến điểm khủng hoảng
Cộng đồng phát triển phần mềm đang vật lộn với một vấn đề nghiêm trọng khi việc review code đã trở thành những bài tập đóng dấu cao su một cách hời hợt. Các developer thường xuyên phê duyệt pull request mà họ không hiểu, dẫn đến việc bug xâm nhập vào production. Vấn đề này đã trở nên nghiêm trọng đến mức một số công ty đang trải qua tình huống khi tác giả code gốc rời đi, và những reviewer đã phê duyệt các thay đổi không thể giải thích code thực sự làm gì.
Vấn đề này vượt ra ngoài code được tạo bởi AI. Ngay cả với code do con người viết, việc review hiệu quả đòi hỏi reviewer phải có mô hình tinh thần riêng về cách một nhiệm vụ nên được thực hiện, hoặc ít nhất là xây dựng một mô hình trong khi đọc. Không có nền tảng này, việc review code chỉ trở thành một cuộc kiểm tra tuân thủ thay vì một đánh giá kỹ thuật có ý nghĩa.
Giải pháp được hỗ trợ bởi AI với sự mỉa mai tích hợp
Hệ thống PR Quiz sử dụng API của OpenAI để tạo ra các câu hỏi trắc nghiệm dựa trên những thay đổi trong pull request. Khi một reviewer phê duyệt một pull request, họ phải vượt qua một bài quiz chứng minh sự hiểu biết của mình trước khi code có thể được merge. Hệ thống bao gồm các tham số có thể cấu hình như giới hạn thời gian, số lần thử tối đa, và ngưỡng số dòng thay đổi tối thiểu để ngăn chặn lạm dụng trên những thay đổi tầm thường.
Tuy nhiên, cộng đồng đã nhanh chóng nhận ra sự mỉa mai vốn có: các developer có thể đơn giản sử dụng AI để trả lời những câu hỏi quiz được tạo bởi AI. Điều này tạo ra một vấn đề vòng tròn khi bot có thể kết thúc bằng việc quiz các bot khác, có khả năng làm thất bại toàn bộ mục đích của sự giám sát của con người.
Tham số cấu hình PR Quiz
Tham số | Mô tả | Giá trị mặc định | Bắt buộc |
---|---|---|---|
github-token | Token GitHub để truy cập API | - | Có |
ngrok-authtoken | Token xác thực Ngrok để lưu trữ máy chủ | - | Có |
openai-api-key | Khóa API OpenAI để tạo bài quiz | - | Có |
model | Mô hình AI để tạo bài quiz | o4-mini | Không |
lines-changed-threshold | Số dòng thay đổi tối thiểu để kích hoạt quiz | 100 | Không |
time-limit-minutes | Giới hạn thời gian hoàn thành quiz | 10 | Không |
max-attempts | Số lần thử tối đa được phép | 3 | Không |
Mối quan ngại về quyền riêng tư và triển khai
Hệ thống đặt ra câu hỏi về các thực hành xử lý dữ liệu trong kỷ nguyên AI. Trong khi công cụ này tuyên bố về quyền riêng tư bằng cách chỉ gửi code đến OpenAI thay vì các nhà cung cấp hosting bên thứ ba, nhiều developer đặt câu hỏi khi nào việc gửi code độc quyền đến các nhà cung cấp mô hình AI trở thành tiêu chuẩn quyền riêng tư có thể chấp nhận được.
Việc triển khai yêu cầu các developer thiết lập API key của OpenAI và token xác thực ngrok, tạo ra sự phức tạp bổ sung trong quy trình phát triển. Hệ thống chạy một web server tạm thời trong GitHub Actions và sử dụng ngrok để tạo các tunnel công cộng, điều mà một số người có thể xem là một cân nhắc về bảo mật.
Yêu cầu thiết lập
- OpenAI API Key (khuyến nghị sử dụng gói trả phí)
- ngrok authentication token (hỗ trợ gói miễn phí)
- GitHub repository với Actions được kích hoạt
- Đặt workflow file trong thư mục
.github/workflows
- Cấu hình repository secrets cho các API keys
Vượt ra ngoài các giải pháp kỹ thuật
Cuộc thảo luận tiết lộ rằng vấn đề gốc rễ có thể không phải là kỹ thuật mà là văn hóa và kinh tế. Một số developer gợi ý rằng việc review code có ý nghĩa chỉ xảy ra khi chất lượng phần mềm tác động trực tiếp đến tiền lương thông qua tiền thưởng, đánh giá hiệu suất, hoặc an ninh công việc. Không có hậu quả thực sự cho chất lượng code kém, các thực hành review hời hợt vẫn tồn tại bất kể các công cụ có sẵn.
Cách duy nhất tôi từng thấy các engineer quan tâm đến PR là nếu phần mềm hoặc sản phẩm được gắn trực tiếp với tiền lương của họ.
Cuộc tranh luận cũng làm nổi bật các triết lý khác nhau về mục đích của việc review code. Một số xem nó như việc xác thực logic triển khai, trong khi những người khác xem nó như việc bắt các vấn đề bảo mật tiềm ẩn, vi phạm best practice, và các trường hợp edge mà các công cụ tự động có thể bỏ lỡ.
Nhìn về phía trước
Trong khi PR Quiz đại diện cho một cách tiếp cận sáng tạo để đảm bảo sự hiểu biết code, nó cũng minh họa những thách thức rộng lớn hơn mà phát triển phần mềm đang đối mặt trong kỷ nguyên AI. Công cụ này có thể có giá trị nhất không phải như một người gác cổng, mà như một công cụ hỗ trợ học tập giúp reviewer xác định các khoảng trống kiến thức và đặt câu hỏi tốt hơn trong quá trình review.
Phản ứng của cộng đồng cho thấy rằng việc giải quyết vấn đề review code đòi hỏi phải giải quyết cả khía cạnh kỹ thuật và văn hóa của phát triển phần mềm. Khi AI tiếp tục tạo ra nhiều code hơn, ngành công nghiệp phải phát triển các thực hành bền vững duy trì chất lượng code mà không tạo ra mối quan hệ đối kháng giữa con người và hệ thống AI.
Tham khảo: PR Quiz