Tác giả: The Pragmatic Engineer
Biên dịch: Deep潮 TechFlow
Dẫn nhập của Shenchao: AI ngày càng viết mã nhanh hơn, nhưng việc kiểm tra mã vẫn do con người thực hiện. Mâu thuẫn này đang dần trở thành một cuộc khủng hoảng: các kỹ sư bị ngập trong các PR do AI tạo ra, либо mệt mỏi vì kiểm tra không kỹ lưỡng, либо đơn giản là nhấn đồng ý vì AI không báo lỗi. Các công ty lớn đang tự phát triển công cụ để ứng phó, nhưng hiện chưa có câu trả lời chuẩn nào.
Xin chào, tôi là Gergely, đây là một bản tin bổ sung miễn phí từ Pragmatic Engineer Newsletter. Mỗi kỳ, tôi đều đưa tin về các công ty công nghệ lớn và startup từ góc nhìn của các kỹ sư và nhà lãnh đạo kỹ thuật giàu kinh nghiệm. Hôm nay, chúng ta sẽ thảo luận về một trong bốn chủ đề trong số các bài viết trước của tờ The Pulse. Những người đăng ký đầy đủ đã nhận được bài viết này cách đây một tuần. Nếu email này được chuyển tiếp đến bạn, bạn có thể đăng ký tại đây.
Tôi nghe thấy điều mà nhiều nhà lãnh đạo kỹ thuật quan tâm nhất là cách xử lý khối lượng kiểm tra mã ngày càng tăng. Chủ đề này đã tồn tại một thời gian, và hiện nay những cuộc trò chuyện loại này dường như ngày càng nhiều hơn.
Đối với tôi, điều này bắt đầu từ tháng 1 năm nay, khi Opus 4.5 và GPT 5.4 bắt đầu viết nhiều mã tốt hơn cho hầu hết các công ty. Khoảng từ thời điểm đó, các giám đốc cấp cao bắt đầu thảo luận về việc điểm nghẽn trong phát triển phần mềm đang chuyển từ giai đoạn mã hóa sang giai đoạn kiểm tra.
Sự bùng nổ của các công cụ kiểm tra mã AI
Kể từ tháng 2, các công cụ kiểm tra mã AI đã chứng kiến sự bùng nổ trong việc ứng dụng để đối phó với sự gia tăng tải công việc, với sự thí nghiệm và triển khai các công cụ chuyên biệt như CodeRabbit, Greptile, Qodo, SonarQube (giờ đây còn có Gitar) tăng mạnh. Ngoài ra, các công cụ lập trình cũng tích hợp các tính năng kiểm tra mã như Claude Code review, Cursor review, GitHub Copilot review. Đồng thời, những công cụ trước đây không liên quan đến kiểm tra mã nhưng có ngữ cảnh về kho mã nguồn cũng đang gia nhập lĩnh vực này, ví dụ như Seer AI reviews của Sentry và Linear code reviews.
Công cụ nội bộ do các công ty lớn tự xây dựng: Code Inbox của Uber
Các công ty lớn đang xây dựng các công cụ nội bộ để cải thiện trải nghiệm kiểm tra mã. Code Inbox của Uber là một ví dụ:
Phân bổ thông minh là một tính năng trong Code Inbox nhằm thúc đẩy quy trình xem xét:

Hình: Cài đặt Gán thông minh (Smart assignment) của Code Inbox để thúc đẩy quy trình xem xét. Nguồn: The Pragmatic Engineer
Còn có chức năng hồ sơ rủi ro để đánh giá tác động của các thay đổi và khuyến khích các nhà phát triển chú ý đặc biệt đến các thay đổi có rủi ro cao:

Hình: Tính năng Hồ sơ rủi ro (Risk Profiles) của Code Inbox, ước tính rủi ro thay đổi mã và nhắc nhở tập trung chú ý. Nguồn: The Pragmatic Engineer
Chúng tôi đã từng đưa tin về cách Uber sử dụng AI trong phát triển phần mềm, và không chỉ có Uber: Cloudflare (AI Code Reviewer), Faire (Fairey), HubSpot (Sidekick) và nhiều công ty khác cũng đã xây dựng các công cụ để làm cho quy trình duyệt mã của họ trơn tru hơn, vì họ phát hiện ra rằng các giải pháp tự phát triển hiệu quả hơn so với các giải pháp tích hợp từ nhà cung cấp bên ngoài.
Chuyển từ “kiểm duyệt” sang “xác minh”
Một cách tiếp cận khác là suy nghĩ về cách xác minh mã nguồn thay vì xem xét mã nguồn. Nói thì dễ nhưng làm thì khó; về lý thuyết, các bài kiểm tra kỹ lưỡng nên có thể xác minh rằng mã nguồn hoạt động như mong đợi. Nhưng thế nào mới là “kỹ lưỡng”? Chúng ta đang nói đến loại kiểm tra nào? Liệu có bao gồm kiểm tra tích hợp và kiểm tra end-to-end không? Còn kiểm tra mờ thì sao? Các phương pháp hình thức thì sao? Làm thế nào để xác minh rằng các bài kiểm tra mới đã bao phủ đầy đủ chức năng như mong đợi? Chúng ta làm thế nào để kết nối tất cả những điều này với khả năng quan sát?
Việc kiểm duyệt quá mức đang làm suy yếu các kỹ sư
Việc kiểm tra mã quá kỹ lưỡng đang khiến các kỹ sư kiệt sức và làm giảm chất lượng kiểm tra. Tôi nghe rất nhiều tin đồn rằng các nhà phát triển thấy những người khác không còn sẵn sàng dành tâm huyết để kiểm tra mã, và nếu kiểm tra AI không đưa ra ý kiến thực chất, họ sẽ bỏ qua ngay. Trong khi đó, những nhà phát triển vẫn dành cùng một mức độ nỗ lực và thời gian như trước để kiểm tra mã cảm thấy bị chìm ngập trong các PR rác do AI tạo ra.
Vấn đề vẫn tồn tại, giải pháp vẫn đang ở giai đoạn thí nghiệm
Vấn đề tồn tại, nhưng giải pháp dường như giống một thí nghiệm hơn.
