Article
Vibe Coding có thực sự hiệu quả?
Dù tranh cãi như thế nào, chúng ta cũng phải thừa nhận AI đang tham gia rất sâu vào công việc của những nhà phát triển
Có lẽ đa số mọi người thời gian qua nghe nhiều đến cụm từ “AI sẽ thay thế bạn”, được rất nhiều người - mà tôi đánh giá cần thu hút - giật title. Tôi luôn phản đối điều này, nó khiến những người xung quanh mà tôi biết, hoặc sợ hãi hoặc FOMO.
Quan điểm của tôi lúc này, AI vẫn là công cụ, nhưng là một công cụ hết sức đặc biệt và khiến cuộc sống của chúng ta vận động nhanh hơn. Công cụ không thay thế con người, nó biến đổi tính chất và cách thức chúng ta làm việc. Khi khả năng công cụ tăng lên, kỹ năng, phạm vi của người sử dụng chúng cũng phải tăng lên - đó là điều tất yếu. Và vì nó là công cụ, nên việc sử dụng nó hiệu quả hay kém hiệu quả hoàn toàn là bởi người sử dụng.
Quay lại với vibe coding, dành cho bạn nào chưa biết, “vibe coding” là việc con người ra lệnh cho AI viết mã lập trình bằng ngôn ngữ tự nhiên (natural language). Tôi quan sát có 2 luồng ý kiến:
- một cho rằng vibe coding hay AI generate code không thực sự hiệu quả như một CTO mà tôi từng làm việc gần đây quả quyết rằng AI code (còn chưa nói đến vibe coding) tạo ra nhiều rủi ro
- và ngược lại.
Với bài viết này, tôi xin gia nhập nhóm ủng hộ vibe coding.
Tôi đã từng trải nghiệm thực tế với Github Coding, Windsurf và Cursor bên cạnh thử nghiệm vài công cụ AI khác. Trong đó vài tháng gần đây, tôi sử dụng AI thực thi chính việc viết mã, doc core logic, thiết kế database… với phần lớn là ra lệnh (prompt) chứ không trực tiếp code. Sau đây là 3 điểm tôi đánh giá cao về việc áp dụng vibe coding.
1) Năng suất - hẳn rồi, thứ quan tâm đầu tiên.
Năng suất thể hiện ở hai điểm: tốc độ và chất lượng. Về tốc độ gen code, chắc chắn không phải bàn, nhanh gấp nhiều lần so với một người bình thường.
Chất lượng các đoạn code thì sao?
Tôi - một cách không may mắn - từ khi bắt đầu sự nghiệp thường phải review code do một bạn khác viết, một công việc chẳng mấy thú vị. Tôi dám chắc AI code tốt hơn hẳn một bạn lập trình viên ở trình độ trung bình. Điều này khiến nhiều bạn tự ái, nhưng cũng tương tự các chuyên viên tính toán sử dụng bản tính với máy tính và excel thôi. Ai viết code sạch hơn, biến đặt tên đúng, tuân thủ coding convention, không để lại warning code…
2) Tiếp theo, giảm thiểu lãng phí.
Một lẽ thông thường, các công việc do nhiều người đóng góp đều tạo ra sự phức tạp trong cộng tác. Và lập trình là một công việc đòi hỏi sự cộng tác ở mức cao. Chắc nhiều người ở vai trò quản lý dự án có thể đồng ý với tôi chúng ta luôn phải nỗ lực rất nhiều để duy trì thông tin giữa các cá nhân hay các nhóm tham gia mà một rủi ro rất lớn là sự lãng phí thiếu thông tin. Ví dụ:
Một dev code một đoạn code để xử lý vấn đề tương tự thay vì tái sử dụng của một dev khác.
Hay một dev mở rộng một đoạn code có sẵn mà không hình dung được hết bối cảnh sử dụng mà có thể vô tình khiến khu vực khác phải thay đổi.
AI có khả năng đọc-hiểu-liên kết code nhanh hơn bất cứ lập trình viên nào, ngay cả với các model phổ thông. Nhờ đó, nó có thể bao quát tốt hơn, giúp hạn chế tối đa những lỗi do thiếu kết nối thông tin.
3) Khả năng tận dụng được tri thức chung
Cũng như internet, tôi cho rằng AI sẽ mở rộng khả năng mỗi cá nhân chúng ta tiếp cận tri thức chung, giúp chúng ta thu hẹp hoặc sớm nhận ra vùng không biết mình không biết.
Dù lập trình là một công việc cần tư duy, nhưng tôi đánh giá 80% công việc của chúng ta sẽ lặp lại một công việc tương tự.
Ví dụ như khi tôi code một framework automation testing, khâu cần tư duy nhất là lúc tôi thiết kế các cấu phần và cách thức hoạt động của framework. Sau đó công việc lặp lại hoặc tương tự là các đoạn code test kế thừa - gần như khuôn mẫu.
Rộng hơn phạm vi một dự án, một thực tế rằng phần lớn chúng ta thường giải quyết những bài toán khá phổ biến. Một nhu cầu triển khai chức năng có sự sắp xếp. Một nhu cầu phân phối đơn hàng để xử lý đảm bảo tính ngẫu nhiên nhưng có những điều kiện để ưu tiên như thời gian, giá trị v.v.v. những thứ mà có thể tìm thấy sự tương tự. Cũng giống như làm toán có các dạng bài toán.
AI có khả năng tích luỹ thông tin cách thức triển khai. Ví dụ trong sub-project tôi đang triển khai, AI chỉ mất chưa đến 10 phút để implement chính xác yêu cầu sử dụng event emitter pattern với đầy đủ event grammar như tôi mong muốn.
Kết lại.
Dù mọi dự đoán về tương lai giai đoạn này đều rất bấp bênh, tôi dám chắc rằng AI sẽ ở vai trò thực thi chính trong phát triển hệ thống công nghệ. Không chỉ thế, nó sẽ còn biến đổi cách con người sử dụng các hệ thống, các digital products. Nhưng thôi nó là chuyện xa, điều này để khẳng định vibe coding thực sự hiệu quả và team nào đến giờ vẫn còn chưa sử dụng nó thực sự là tụt hậu.
Tôi không định vị mình là một coder, phần lớn thời gian trong sự nghiệp, dù job title là Tech Lead, CTO hay giờ là CIO, tôi định vị mình là một người làm sản phẩm. Tôi không nhận mình là một người lập trình giỏi nên những nhận định trên có thể còn thiếu sót. Vibe coding hiện tại cũng có những hạn chế, xin phép chia sẻ trong bài viết khác.
Và xin nhắc lại tôi không đồng ý quan điểm AI sẽ thay thế con người. Nhưng giống như trong cuộc chiến đối phương dùng súng, mà bạn kiên quyết dùng gươm, chắc chắn bạn sẽ out game.


