Software Engineering

Cách Chúng Tôi Thực Sự Sử Dụng AI Cho Code Production Tại FAANG: Góc Nhìn Từ Một Kỹ Sư Cấp Cao

Một Kỹ sư phần mềm AI với hơn mười năm kinh nghiệm tại FAANG chia sẻ quy trình thực tế khi tích hợp AI coding assistants vào phát triển production, phá bỏ những hiểu lầm và tiết lộ phương pháp có cấu trúc giúp tăng tốc 30% từ đề xuất tính năng đến khi đưa lên production.

Duy Pham

Mobile App Developer

Dec 6, 20250 phút đọc625 lượt xem
Cách Chúng Tôi Thực Sự Sử Dụng AI Cho Code Production Tại FAANG: Góc Nhìn Từ Một Kỹ Sư Cấp Cao

Có khá nhiều sự hoài nghi về việc liệu code được hỗ trợ bởi AI có thể đáng tin cậy trong môi trường production hay không. Với tư cách là một Kỹ sư phần mềm AI có hơn một thập kỷ kinh nghiệm, trong đó một nửa thời gian làm việc tại FAANG và các công ty tương tự, tôi có thể khẳng định rằng sự hoài nghi này là không có cơ sở. Chúng tôi đang thành công trong việc sử dụng AI để viết code production, và chúng tôi thực hiện điều này theo cách có cấu trúc, kỷ luật, vẫn duy trì các tiêu chuẩn chất lượng cao mà những công ty này nổi tiếng.

Bối cảnh của tôi bao gồm mười lăm năm kinh nghiệm lập trình, với những năm đầu sự nghiệp tập trung vào kỹ thuật hệ thống trước khi chuyển sang phát triển phần mềm. Góc nhìn này đã cho tôi cái nhìn toàn diện về cách các công cụ AI có thể được tích hợp vào quy trình phát triển thực tế mà không làm giảm chất lượng hay độ tin cậy.

Thực Tế Về Phát Triển Production Có Hỗ Trợ AI

Hiểu lầm chính mà tôi gặp phải là mọi người tưởng tượng các lập trình viên chỉ đơn giản là copy và paste code do AI tạo ra trực tiếp vào hệ thống production. Không có gì xa sự thật hơn thế. Cách tiếp cận của chúng tôi đối với phát triển có hỗ trợ AI, thứ mà đôi khi chúng tôi gọi là "vibe coding", được nhúng trong một quy trình kỹ thuật nghiêm ngặt có nhiều điểm kiểm tra và cổng chất lượng.

Quy Trình Phát Triển Bảy Giai Đoạn

Quy trình làm việc của chúng tôi tuân theo một tiến trình có cấu trúc, đảm bảo sự hỗ trợ của AI nâng cao thay vì thay thế phán đoán và chuyên môn kỹ thuật.

Giai Đoạn Một: Tài Liệu Thiết Kế Kỹ Thuật

Mọi tính năng đều bắt đầu với một tài liệu thiết kế kỹ thuật. Đây là nơi diễn ra phần công việc trí tuệ đáng kể, rất lâu trước khi bất kỳ dòng code nào được viết. Quy trình thiết kế bắt đầu như một đề xuất, nơi bạn phải diễn giải giá trị kinh doanh, cách tiếp cận kỹ thuật và yêu cầu tài nguyên. Chỉ sau khi thuyết phục đủ các bên liên quan rằng đề xuất của bạn có giá trị, bạn mới tiến hành phát triển thiết kế hệ thống chi tiết. Điều này bao gồm lập kế hoạch kiến trúc toàn diện, các điểm tích hợp với các nhóm khác, sơ đồ luồng dữ liệu, và xem xét các trường hợp biên và chế độ lỗi.

Tài liệu thiết kế đóng vai trò là nền tảng cho mọi thứ diễn ra sau đó. AI không viết tài liệu này. Nó đòi hỏi sự hiểu biết sâu sắc về yêu cầu kinh doanh, các ràng buộc của hệ thống hiện có, và các quyết định kỹ thuật chiến lược mà chỉ các kỹ sư có kinh nghiệm mới có thể đưa ra.

Giai Đoạn Hai: Duyệt Thiết Kế

Một khi tài liệu thiết kế của bạn hoàn thành, nó phải đối mặt với sự giám sát từ các kỹ sư cấp cao trong toàn tổ chức. Quy trình duyệt này có thể rất căng thẳng. Các kỹ sư cấp cao sẽ thách thức các giả định, xác định các vấn đề tiềm ẩn, và phản bác các cách tiếp cận có thể không mở rộng được hoặc tích hợp kém với các hệ thống hiện có. Dù điều này có thể cảm thấy khó chịu, nó đại diện cho những gì tôi gọi là "chấp nhận đau đớn sớm để tránh đau khổ sau này". Việc bắt được các lỗi thiết kế cơ bản trước khi phát triển bắt đầu sẽ tiết kiệm được lượng công việc sửa chữa khổng lồ và ngăn ngừa các vấn đề trên production.

Quy trình đánh giá của con người này là không thể thay thế. AI không thể thay thế cho trí tuệ tập thể và kinh nghiệm của các kỹ sư cấp cao đã xây dựng và duy trì các hệ thống quy mô lớn.

Giai Đoạn Ba: Lập Kế Hoạch Phân Hệ Chi Tiết

Sau khi vượt qua thành công buổi duyệt thiết kế, vài tuần đầu tiên của quá trình phát triển được dành cho việc tạo tài liệu chi tiết cho từng phân hệ mà các nhóm phát triển riêng lẻ sẽ xây dựng. Điều này chia nhỏ kiến trúc cấp cao thành các kế hoạch triển khai cụ thể với các giao diện, hợp đồng và phụ thuộc rõ ràng giữa các thành phần.

Giai Đoạn Bốn: Tạo Backlog và Lập Kế Hoạch Sprint

Ở giai đoạn này, các lập trình viên làm việc chặt chẽ với Product Managers và Technical Program Managers để hoàn thiện các nhiệm vụ cụ thể mà mỗi lập trình viên sẽ xử lý và trình tự hoàn thành công việc. Điều này liên quan đến việc ước tính nỗ lực, xác định các phụ thuộc và thiết lập các mốc quan trọng phù hợp với timeline sản phẩm rộng lớn hơn.

Backlog đại diện cho một hàng đợi công việc được ưu tiên, mỗi mục có tiêu chí chấp nhận rõ ràng và định nghĩa hoàn thành. Cấu trúc này rất cần thiết cho sự hỗ trợ AI hiệu quả vì nó cung cấp bối cảnh và ràng buộc mà trong đó các công cụ AI hoạt động.

Giai Đoạn Năm: Phát Triển Phần Mềm Với Hỗ Trợ AI

Cuối cùng, chúng tôi đến điểm mà các lập trình viên thực sự viết code và tương tác với bàn phím. Đây là nơi AI trở thành một yếu tố nhân lực năng suất. Chúng tôi tuân theo phương pháp Test-Driven Development, có nghĩa là tôi để các coding agents của AI viết các bài test toàn diện cho các tính năng trước khi triển khai những tính năng đó. Chỉ sau khi thiết lập một test suite vững chắc, tôi mới sử dụng agent để xây dựng chức năng thực tế.

Cách tiếp cận này mang lại một số lợi thế. Thứ nhất, nó đảm bảo rằng code do AI tạo ra đáp ứng các yêu cầu hành vi cụ thể được xác định bởi các bài test. Thứ hai, nó tạo ra một mạng lưới an toàn bắt được các regression và tác dụng phụ ngoài ý muốn. Thứ ba, nó buộc phải rõ ràng về những gì code thực sự nên làm trước khi bắt đầu triển khai.

AI xử lý phần lớn công việc lập trình lặp đi lặp lại, tạo boilerplate và triển khai các pattern đã được thiết lập tốt. Tuy nhiên, lập trình viên vẫn giữ quyền kiểm soát, đưa ra các quyết định kiến trúc, xem xét code được tạo ra về tính đúng đắn và hiệu quả, và đảm bảo rằng việc triển khai phù hợp với tài liệu thiết kế và tiêu chuẩn của nhóm.

Giai Đoạn Sáu: Duyệt Code Trước Khi Nộp

Quy trình code review của chúng tôi yêu cầu sự chấp thuận từ hai lập trình viên trước khi bất kỳ code nào có thể được merge vào nhánh chính. Những người review này kiểm tra code về tính đúng đắn, khả năng bảo trì, tuân thủ các tiêu chuẩn lập trình, lỗ hổng bảo mật và sự phù hợp với các nguyên tắc kiến trúc. Họ cũng xác minh rằng test coverage là đầy đủ và việc triển khai khớp với tài liệu thiết kế.

AI đang bắt đầu cho thấy triển vọng trong việc hỗ trợ code review, giúp xác định các vấn đề tiềm ẩn và đề xuất cải tiến. Tuy nhiên, phán đoán của con người vẫn cần thiết để đánh giá liệu code có thực sự sẵn sàng cho production hay không.

Giai Đoạn Bảy: Triển Khai Staging và Production

Sau khi vượt qua code review, các thay đổi được triển khai lên môi trường staging phản ánh production. Điều này cho phép kiểm thử tích hợp, xác thực hiệu suất và xác minh rằng tính năng hoạt động chính xác trong hệ thống hoàn chỉnh. Chỉ sau khi testing trên staging vượt qua thành công, chúng tôi mới triển khai lên production.

Kết Quả Đo Lường Được và Tác Động Thực Tế

Tác động của cách tiếp cận có hỗ trợ AI này là đáng kể. Chúng tôi quan sát được khoảng ba mươi phần trăm cải thiện về tốc độ từ đề xuất tính năng ban đầu đến triển khai production. Đây là một mức tăng năng suất khổng lồ đối với tổ chức của chúng tôi.

Sự tăng tốc này không đến từ việc cắt giảm các bước hoặc giảm chất lượng, mà từ việc loại bỏ công việc lặp đi lặp lại, tự động hóa việc tạo boilerplate code, đẩy nhanh việc tạo test, và cho phép các lập trình viên tập trung vào thiết kế cấp cao hơn và giải quyết vấn đề thay vì các nhiệm vụ lập trình mang tính cơ học.

Insight Thiết Yếu

Insight quan trọng là sự hỗ trợ lập trình của AI hoạt động tốt nhất trong một kỷ luật kỹ thuật có cấu trúc, không phải như một sự thay thế cho nó. Các yếu tố con người vẫn hoàn toàn quan trọng: hiểu yêu cầu kinh doanh, đưa ra quyết định kiến trúc, tiến hành duyệt thiết kế, định nghĩa các test case, xem xét chất lượng code và xác thực hành vi trên production.

AI xuất sắc trong các khía cạnh cơ học của việc lập trình một khi các quyết định chiến lược đã được đưa ra. Nó tăng tốc việc triển khai mà không làm giảm các quy trình chất lượng nghiêm ngặt đảm bảo độ tin cậy của production. Những lập trình viên hoài nghi về AI trong production thường tưởng tượng một kịch bản mà AI thay thế toàn bộ quy trình kỹ thuật. Đó không phải là điều xảy ra. Thay vào đó, AI trở thành một công cụ mạnh mẽ tăng cường khả năng của con người trong khuôn khổ các thực hành kỹ thuật đã được chứng minh.

Đối với các tổ chức đang xem xét áp dụng phát triển có hỗ trợ AI, bài học rõ ràng: duy trì kỷ luật kỹ thuật của bạn, bảo tồn các cổng chất lượng của bạn, và để AI xử lý những gì nó làm tốt nhất trong khi con người tiếp tục đưa ra các quyết định phán đoán đòi hỏi kinh nghiệm, trực giác và tư duy chiến lược. Khi được triển khai theo cách này, sự hỗ trợ của AI mang lại những lợi ích năng suất đáng kể mà không hy sinh chất lượng và độ tin cậy mà các hệ thống production đòi hỏi.

Thẻ

#AI-Assisted Development
#FAANG
#Production Code
#Software Development Lifecycle
#Test-Driven Development
#Engineering Best Practices
#Coding Agents
#Developer Productivity

Bài Viết Có Ích?

Thêm bài viết về lập trình AI và mobile