Cụm từ “vibe coding” bỗng trở nên phổ biến trong cộng đồng lập trình viên vào cuối năm 2025. Nói ngắn gọn, đó là cách mô tả điều bạn muốn bằng ngôn ngữ tự nhiên và để AI viết mã.
Ý tưởng cốt lõi
Người phát triển không nhất thiết phải viết từng dòng mã. Bạn mô tả yêu cầu, AI hiểu và tạo mã; nếu kết quả chưa đúng, bạn tiếp tục chỉnh bằng ngôn ngữ tự nhiên. Toàn bộ quá trình giống như “đạo diễn” phần mềm hơn là “viết” mã theo nghĩa truyền thống.
Chế độ Composer của Cursor, chế độ agent của Claude Code và coding agent của GitHub Copilot đều đang đẩy xu hướng này đi xa hơn.
Khi nào dùng được
Những tình huống phù hợp gồm:
- Làm nguyên mẫu nhanh, từ ý tưởng đến bản demo chạy được.
- Mã CRUD có tính lặp lại.
- Khám phá ban đầu với framework hoặc ngôn ngữ chưa quen.
- Viết test case và tài liệu.
Những tình huống không phù hợp cũng khá rõ:
- Mã tầng thấp đòi hỏi hiệu năng cao.
- Module nhạy cảm về bảo mật.
- Bối cảnh cần kiểm soát chính xác từng nhánh logic.
- Codebase kế thừa lớn với nhiều ràng buộc phức tạp.
Điểm gây tranh luận
Người ủng hộ cho rằng vibe coding hạ thấp rào cản lập trình, giúp nhiều người biến ý tưởng thành công cụ bằng mã. Phe phản đối cảnh báo rằng người không hiểu đoạn mã mình tạo ra sẽ gặp rắc rối lớn khi phải bảo trì và gỡ lỗi. Nếu bạn không đọc hiểu mã do AI viết, bạn sẽ làm gì khi có bug?
Cuộc tranh luận này rất giống tranh luận từng có quanh các nền tảng low-code. Câu trả lời có lẽ cũng tương tự: vibe coding có thể trở thành một công cụ hiệu quả, nhưng không thay thế hiểu biết về nguyên lý bên dưới.
Ai đang dùng
Điều thú vị là người dùng nhiều không chỉ là người mới học. Nhiều lập trình viên giàu kinh nghiệm cũng dùng, nhưng với mục đích khác. Người mới dùng để có “mã chạy được”; người có kinh nghiệm dùng để bỏ qua nhanh những phần nhàm chán.
Nghiên cứu của METR cũng nhắc rằng lập trình viên có kinh nghiệm đôi khi lại chậm hơn khi dùng công cụ AI, với con số 19% trong nghiên cứu được bài gốc dẫn lại. Vibe coding không phải viên đạn bạc. Điều kiện để dùng đúng là biết khi nào nên dùng và khi nào không nên dùng.
Nguồn: thảo luận trong cộng đồng lập trình viên, CocoLoop, nghiên cứu của METR.