- Bài viết nhìn lại một cách phản tư về Vibe Coding — trải nghiệm “trạng thái nhập tâm (Flow)” khi lập trình cùng AI
- Trong hai tháng gần đây, tác giả đã dựa vào Vibe Coding, nhưng đi đến kết luận rằng nó không mang lại sự hài lòng về mặt năng suất lẫn chi phí
- Vibe Coding không phải là một phương pháp phát triển cụ thể mà là một kiểu phát triển thiên về trạng thái hoặc cảm xúc
- Dựa vào các trợ lý lập trình AI (Cline, Roo Code, Cursor, v.v.) để viết mã theo dòng chảy
- Làm việc không có kế hoạch rõ ràng, chỉ dựa vào trực giác và cảm giác nhập tâm, bị dopamine dẫn dắt để theo đuổi “cảm giác đang tiến triển”
Vấn đề của Vibe Coding
- Lãng phí thời gian: ban đầu có vẻ tiến triển nhanh, nhưng vì thiếu cấu trúc nên dễ bị lỗi hoặc thay đổi kéo đi
- Chi phí tăng: cửa sổ ngữ cảnh của AI càng lớn thì chi phí gọi API cũng tăng theo
- Ví dụ: gửi hàng trăm nghìn token, tạo ra hàng nghìn dòng → cuối cùng trở thành gánh nặng chi phí
- Tăng khối lượng làm lại: đoạn mã được làm nhanh ở giai đoạn đầu rốt cuộc không phù hợp với mục tiêu, dẫn đến tình huống phải sửa lại toàn bộ
Vẫn có ưu điểm
- Thông qua việc lặp đi lặp lại quá trình debug và hiểu lại, mức độ hiểu biết về cấu trúc mã và chính ngôn ngữ lập trình cũng được cải thiện
- Tác giả hiện tập trung học Python, và dần hình thành khả năng hiểu lỗi và dẫn dắt mô hình theo đúng hướng
Vibe Coding vs. AI Chat vs. tìm kiếm web
- Vibe Coding: hữu ích cho giai đoạn khám phá ban đầu hoặc thử nghiệm, nhưng không phù hợp với phát triển có cấu trúc
- AI Chat (ChatGPT, v.v.): hữu ích cho việc trả lời nhanh và tạo boilerplate, nhưng tin tưởng mù quáng thì nguy hiểm (có khả năng AI hallucination)
- Tìm kiếm web: thiết yếu để tìm khái niệm và lời giải chính xác, nhưng có thể tốn nhiều thời gian
Tổ hợp hiện đang ưa dùng: Gemini + Open WebUI
- Gemini Code Assist (dùng trong VS Code):
- Miễn phí và mạnh về tạo mã kiểm thử và sửa lỗi
- Đặc biệt hữu ích với người lần đầu làm unit test
- Open WebUI:
- Hỗ trợ nhiều mô hình và có thể tùy biến
- Có thể thiết lập prompt phù hợp với mục đích cụ thể (lập trình, bài báo, bằng sáng chế, v.v.)
- Phù hợp cho các tác vụ hiệu quả về chi phí so với kết quả, như căn chỉnh văn bản, chuyển đổi bảng, v.v.
Lựa chọn kém hiệu quả: AI agent không giới hạn
- Roo Code, Cline, v.v. chạy trong thời gian dài và tiêu tốn nhiều token
- Đặc biệt, các công cụ dựa trên Claude có hiệu năng tốt nhưng chi phí quá cao
- Thay vào đó, Gemini 2.0, DeepSeek V3/Chat, v.v. miễn phí hoặc rẻ hơn, mà hiệu năng vẫn khá tốt
Kết luận: đang tìm kiếm sự cân bằng
- Không thể nói Vibe Coding hoàn toàn là xấu
- Nó có ích cho việc phát huy sáng tạo hoặc khám phá ý tưởng
- Tuy nhiên, đây không phải là cách phát triển bền vững
- Trước deadline và chi phí, cần có phương án thay thế thực tế hơn
- Tổ hợp tối ưu hiện tại của tác giả:
- Gemini Code Assist (miễn phí, mạnh về unit test)
- Open WebUI (có lợi về khả năng kiểm soát và chi phí)
- Kế hoạch sắp tới:
- Cân nhắc các ứng dụng chat trả phí như Perplexity ($20/tháng, cũng có tier miễn phí)
- Vì chi phí API đã vượt $30/tháng nên cần giảm chi phí một cách có cấu trúc
- Về lâu dài, cũng cân nhắc chạy mô hình cục bộ, và có thể chuyển sang mô hình hiệu quả hơn khi xuất hiện
1 bình luận
Ý kiến trên Hacker News
Thật thú vị khi đọc các chia sẻ về cách người khác dùng LLMs để lập trình
Vibe coding phù hợp với các nguyên mẫu mang tính khám phá hơn là viết mã production
Vibe coding là việc dễ dàng tạo mã trong trạng thái “flow”
Tôi nghĩ vibe coding không liên quan đến coding thực sự
Tôi chi $30 mỗi ngày để dùng Claude Code
Làm việc theo cấu trúc cây là hữu ích
Karpathy rất giỏi đặt tên
Tôi dùng LLM rất nhiều, nhưng khái niệm vibe vốn bắt đầu từ một trò đùa trên mạng
Việc diễn đạt suy nghĩ của mình bằng ngôn ngữ hình thức có giá trị riêng
AI chat cho kết quả tốt hơn web search