Việc lập trình theo “vibe” (vibe coding) có thể là xu hướng mới nhất của giới phát triển phần mềm, nhưng “bắt vibe” cùng AI không phải lúc nào cũng màu hồng. Dưới đây là chín cách mà những vibe coder quá lạc quan có thể thất bại.
Liệu vibe coding có thực sự dễ như người ta nói? Hãy tưởng tượng đến hình ảnh một quản gia — phiên bản “ngoài đời” của AI. Có những trường học chuyên đào tạo kỹ năng cho quản gia mới, như cách phục vụ bữa sáng hay pha một ly martini hoàn hảo. Nhưng bạn có biết, những trường này cũng có khóa học dành riêng cho… những người giàu, dạy họ cách cư xử với quản gia? Đúng vậy, họ học cách cầm tách trà đúng chuẩn để quản gia có thể rót trà một cách duyên dáng, và biết đâu là yêu cầu hợp lý và đâu là điều không nên. Đây là những thứ không thể dạy qua một video TikTok 2 phút.
Được phục vụ tận tình không hề dễ dàng. Có cách đúng để cầm tách trà, và việc biết phân biệt giữa yêu cầu hợp lý và yêu cầu vô vọng là rất quan trọng.
Vibe coding cũng vậy. Đúng là AI và Generative AI có thể làm được những điều đáng kinh ngạc. Một trợ lý lập trình AI tốt có thể ghép lại đoạn code hoạt động theo đúng phần lớn những gì bạn muốn, chỉ dựa trên vài câu mô tả sơ sài và “vẫy tay” mơ hồ (hay còn gọi là prompt engineering). Có ngày, bạn chỉ cần gõ vài dòng, AI sẽ làm trong vài phút những gì vốn cần hàng giờ, thậm chí nhiều ngày. Nhưng đó là những ngày may mắn. Hạn chế của code sinh bởi AI thường tinh vi, nhưng luôn tồn tại. Và tệ hơn, đôi khi chúng ta cũng không rõ cụ thể hạn chế đó là gì. Con người và máy móc đều đang học hỏi.
Dưới đây là chín sai lầm phổ biến của vibe coder:
1. Tin tưởng LLM
Sáng nay, tôi nhờ AI liệt kê danh sách URL. Nó trả lời trong vài giây với một danh sách đúng định dạng và trông có vẻ chuẩn. Nhưng khi kiểm tra, tất cả đều báo lỗi 404. Mỗi. Một. Cái.
Khi tôi báo lại, AI đáp: “Bạn đúng rồi, xin lỗi nhé! Liên kết web có thể thay đổi thường xuyên, có vẻ thông tin trước đây đã lỗi thời. Tôi đã kiểm tra lại và cập nhật danh sách mới.” Nhưng lần này, cũng chẳng có URL nào hoạt động.
Nhiều AI ngày nay bị “ép” phải luôn tỏ ra dễ chịu và hữu ích, nên khi không biết câu trả lời, chúng vẫn trả ra thứ gì đó… và khẳng định nó đúng. Sai lầm chết người đầu tiên trong vibe coding là tin tưởng LLM ngay từ đầu.
2. Nghĩ rằng mọi mô hình đều giống nhau
Giao diện của các LLM trông khá giống nhau, khiến người ta tưởng chúng “na ná” nhau. Nhưng cấu trúc bên trong khác biệt, ảnh hưởng đến khả năng xử lý các vấn đề logic phức tạp như viết code.
Một số mô hình giỏi hơn ở việc chia nhỏ vấn đề và xử lý từng phần, một số thì không. Số lượng tham số cũng là một chỉ dấu — nhiều hơn thường tốt hơn, nhưng không phải lúc nào cũng vậy. Ngoài ra, mỗi mô hình được huấn luyện trên tập dữ liệu khác nhau, đôi khi là bí mật. Chỉ có thử mới biết mô hình nào hợp với bài toán của bạn.
3. Biến LLM thành “thùng rác”
LLM phải xử lý mọi token trong prompt trước khi sinh đầu ra. Đưa vào quá nhiều code một lúc không chỉ tốn tài nguyên và tiền (nếu tính phí theo token) mà còn có thể khiến AI lạc hướng, tập trung vào phần code không liên quan. Việc “quăng” cả thư mục source code cho AI thường phản tác dụng.
4. Giả định AI nghĩ giống con người
AI nói như con người, đôi khi “ảo tưởng” như con người, nhưng thực ra chỉ là máy ghép các mảnh thông tin từ dữ liệu huấn luyện. Chúng giỏi tìm kiếm thông tin cụ thể hơn là sáng tạo sâu sắc. Đừng mong AI trở thành “thiên tài” mọi lúc.
5. Ghép code như chắp vá
AI có xu hướng sinh code với phong cách khác nhau mỗi lần, thiếu sự thống nhất. Vibe coder thường bỏ qua điều này, cắt-dán tùy tiện. Code chạy được nhưng rối rắm, khó bảo trì.
6. Bỏ qua thiên kiến lập trình của LLM
Dữ liệu huấn luyện ảnh hưởng trực tiếp đến đầu ra. Có thể AI lặp lại cùng một mẫu thiết kế (“recency bias”) hoặc thiên về giải pháp “tự nghĩ ra” thay vì dùng giải pháp có sẵn. Những thiên kiến này có thể làm hỏng dự án lớn.
7. Bỏ qua chi phí
AI trông rẻ hơn thuê lập trình viên, nhưng phí token có thể đội lên nhanh chóng, nhất là khi gửi nhiều đoạn code dài. Chi phí điện, GPU… đều cộng dồn.
8. Giao quyền kiểm soát hoàn toàn cho AI
LLM có tính ngẫu nhiên, mỗi lần làm một kiểu. Có câu chuyện AI xóa cả cơ sở dữ liệu production. Việc này cho thấy nguy hiểm khi trao quyền quá nhiều cho AI.
9. Chạy theo ảo giác của AI
AI có thể tạo ra code trông rất “xịn” nhưng gọi đến hàm hoặc thư viện… không tồn tại. Bạn sẽ mất hàng giờ kiểm tra trước khi nhận ra nó bịa. Và khi bạn chỉ ra lỗi, AI sẽ xin lỗi… rồi tiếp tục bịa sang hướng khác. Đôi khi, tự viết code sẽ nhanh hơn nhiều.
by Peter Wayner.