Cloudflare đã phát hành một thư viện OAuth provider cho nền tảng Workers của họ, được viết chủ yếu bằng Claude AI, làm bùng nổ cuộc thảo luận sôi nổi về vai trò của trí tuệ nhân tạo trong phát triển phần mềm. Dự án này, do Kenton Varda - một kỹ sư trưởng tại Cloudflare dẫn đầu, đại diện cho một trong những ví dụ lớn đầu tiên về thư viện bảo mật sẵn sàng cho sản xuất được xây dựng chủ yếu thông qua sự hỗ trợ của AI.
Thư viện triển khai các tiêu chuẩn OAuth 2.1 cho Cloudflare Workers, nhưng điều khiến nó đáng chú ý không chỉ là chức năng của nó—mà là cách nó được tạo ra. Varda, người tự mô tả mình là một người hoài nghi AI trước đây, đã sử dụng Claude Sonnet 3.7 để tạo ra phần lớn mã code thông qua việc đưa ra lời nhắc cẩn thận và tinh chỉnh lặp đi lặp lại. Toàn bộ quá trình phát triển, bao gồm các lời nhắc và tương tác với AI, đã được ghi lại trong lịch sử commit của dự án để đảm bảo tính minh bạch.
Chi tiết kỹ thuật chính
- Nền tảng: Cloudflare Workers
- Tiêu chuẩn được triển khai: OAuth 2.1
- Ngôn ngữ lập trình: TypeScript/JavaScript
- Kho mã nguồn: Mã nguồn mở với đầy đủ lịch sử commit
- Đánh giá bảo mật: Hoàn thành xác thực tham chiếu chéo RFC
Sự giám sát của chuyên gia vẫn là yếu tố quan trọng
Mặc dù AI có đầu ra ấn tượng, dự án vẫn yêu cầu chuyên môn con người rộng rãi trong suốt quá trình phát triển. Varda và nhóm của anh đã xem xét kỹ lưỡng từng dòng code, tham chiếu chéo các triển khai với các RFC liên quan, và sửa thủ công một số lỗi mà AI không thể tự giải quyết được. Một thông điệp commit đáng chú ý có nội dung: Claude đã có lỗi trong commit trước. Tôi đã nhắc nó nhiều lần để sửa lỗi nhưng nó vẫn tiếp tục làm sai.
Trải nghiệm này làm nổi bật một hạn chế chính của các công cụ lập trình AI hiện tại—chúng có thể tạo ra code phức tạp nhưng thường gặp khó khăn với việc gỡ lỗi và giải quyết vấn đề phức tạp khi các lỗi được đưa vào. Nhóm phát triển nhận thấy rằng việc khởi động lại các cuộc trò chuyện từ đầu thường hiệu quả hơn so với việc cố gắng sửa lỗi của AI trong một ngữ cảnh hiện có.
Những Hạn Chế Của AI Được Quan Sát
- Gỡ lỗi các vấn đề phức tạp: Cần can thiệp thủ công
- Duy trì ngữ cảnh: Mất ngữ cảnh sau nhiều lần lặp lại
- Giải quyết vấn đề mới: Kém hiệu quả hơn so với các triển khai tiêu chuẩn
- Tái cấu trúc mã: Khả năng hạn chế với các codebase phức tạp hiện có
Phản ứng của cộng đồng chia rẽ về vai trò của AI
Thông báo này đã chia cộng đồng nhà phát triển thành các phe phái riêng biệt. Những người ủng hộ coi đây là sự xác nhận rằng AI có thể tăng tốc đáng kể quá trình phát triển khi được giám sát đúng cách bởi các kỹ sư có kinh nghiệm. Varda ước tính dự án mất vài ngày với sự hỗ trợ của AI so với hàng tuần hoặc hàng tháng nếu viết bằng tay.
Tuy nhiên, những người hoài nghi đặt ra mối lo ngại về những tác động rộng lớn hơn đối với ngành công nghiệp phần mềm. Một số lo lắng về khả năng giảm cơ hội việc làm, trong khi những người khác đặt câu hỏi liệu code được tạo bởi AI có tạo ra cảm giác năng suất giả tạo hay không. Các nhà phê bình cho rằng quá trình xem xét rộng rãi cần thiết thực sự có thể làm chậm quá trình phát triển so với các phương pháp lập trình truyền thống.
Từng dòng code đều được xem xét kỹ lưỡng và tham chiếu chéo với các RFC liên quan, bởi các chuyên gia bảo mật có kinh nghiệm trước đó với những RFC đó. Tôi đang cố gắng xác thực sự hoài nghi của mình. Cuối cùng tôi đã chứng minh mình sai.
So sánh Thời gian Phát triển
- Phát triển có hỗ trợ AI: Vài ngày
- Ước tính phát triển thủ công: Vài tuần đến vài tháng
- Mô hình AI được sử dụng: Claude Sonnet 3.7
- Chi phí phát triển: Số tiền hai chữ số USD
Những giới hạn của phát triển hỗ trợ bởi AI
Dự án đã tiết lộ cả điểm mạnh và điểm yếu của khả năng lập trình AI hiện tại. Trong khi AI xuất sắc trong việc triển khai các tiêu chuẩn được ghi chép tốt như OAuth—nơi có dữ liệu huấn luyện phong phú—nó gặp khó khăn với các vấn đề mới lạ và các tình huống gỡ lỗi phức tạp. Varda lưu ý rằng sự hỗ trợ của AI ít hiệu quả hơn khi làm việc trên chính Workers Runtime, đặc biệt là để tái cấu trúc các codebase phức tạp hiện có.
Sự thành công của dự án này dường như phụ thuộc rất nhiều vào một số yếu tố: một đặc tả được xác định rõ ràng (tiêu chuẩn OAuth), tính khả dụng của dữ liệu huấn luyện rộng rãi, và quan trọng nhất là sự giám sát của chuyên gia con người trong suốt quá trình. Điều này cho thấy rằng lập trình hỗ trợ bởi AI có thể hiệu quả nhất cho việc triển khai các mẫu đã được thiết lập thay vì tạo ra các giải pháp hoàn toàn mới.
Tác động tương lai đối với phát triển phần mềm
Thí nghiệm của Cloudflare cung cấp cái nhìn thoáng qua về cách AI có thể định hình lại các thực hành phát triển phần mềm. Thay vì thay thế hoàn toàn các kỹ sư, công nghệ này dường như đang phát triển thành một công cụ tinh vi có thể xử lý các nhiệm vụ triển khai thường xuyên trong khi con người tập trung vào kiến trúc, quyết định thiết kế và đảm bảo chất lượng.
Tính minh bạch của dự án trong việc ghi lại cả thành công và thất bại cung cấp những hiểu biết có giá trị cho các nhóm khác đang xem xét các phương pháp tương tự. Nó chứng minh rằng mặc dù AI có thể tăng tốc đáng kể một số loại công việc phát triển nhất định, nhu cầu về các kỹ sư có kinh nghiệm để hướng dẫn, xem xét và xác thực đầu ra vẫn là tối quan trọng—đặc biệt là đối với các thành phần quan trọng về bảo mật như thư viện xác thực.
Khi các công cụ lập trình AI tiếp tục cải thiện, thư viện OAuth của Cloudflare có thể phục vụ như một nghiên cứu tình huống quan trọng để thiết lập các thực hành tốt nhất trong phát triển phần mềm hỗ trợ bởi AI, đặc biệt là cho các dự án mà bảo mật và độ tin cậy là những yêu cầu không thể thương lượng.
Tham khảo: Commits