- Trong môi trường phát triển dựa trên LLM, xuất hiện một cách làm mới là "Vibe Coding", nơi người dùng không trực tiếp viết mã mà tạo ra kết quả thông qua hội thoại và câu lệnh
- Dùng Cursor Composer và SuperWhisper để chỉnh sửa mã bằng lệnh thoại, thực hiện công việc chỉ với những yêu cầu đơn giản như “giảm padding của sidebar xuống còn một nửa”
- Không đọc diff thay đổi mã mà phê duyệt hàng loạt bằng
Accept All, đồng thời sử dụng luồng tự động sửa lỗi bằng cách sao chép nguyên thông báo lỗi vào để xử lý
- Mã nguồn dần trở nên phức tạp và khó hiểu hơn, nhưng ở mức dự án thử nghiệm làm cuối tuần thì vẫn hoạt động đủ tốt
- Một trò chơi Battleship nơi hai LLM đối đầu với nhau theo thời gian thực cũng được tạo theo cùng cách này, kèm nhận xét rằng “4o mạnh hơn 4o-mini”
Khái niệm Vibe Coding
- “Vibe Coding” là một phương thức phát triển tập trung vào dòng chảy và cảm giác hơn là hành vi viết mã
- Người dùng không bận tâm đến cấu trúc chi tiết của mã, mà chấp nhận nguyên kết quả do LLM đề xuất
- Cách diễn đạt “thậm chí quên mất rằng có mã tồn tại” nhấn mạnh trải nghiệm phát triển lấy AI làm trung tâm
Công cụ sử dụng và cách làm việc
- Dùng Cursor Composer và mô hình Sonnet để sinh mã
- Thông qua SuperWhisper, người dùng trò chuyện với Composer bằng giọng nói và gần như không dùng bàn phím
- Yêu cầu chỉnh sửa bằng những lệnh đơn giản như “giảm padding của sidebar xuống còn một nửa”
- Không xem xét diff thay đổi mã mà phê duyệt bằng
Accept All
- Thông báo lỗi thường được xử lý chỉ bằng cách sao chép vào mà không cần giải thích thêm
Quản lý mã và giới hạn
- Khi mã nguồn lớn dần, nó trở nên phức tạp đến mức khó hiểu
- Nếu lỗi không được giải quyết, có thể đi vòng hoặc lặp lại các yêu cầu chỉnh sửa tùy ý để loại bỏ vấn đề
- Cách tiếp cận này phù hợp với các dự án ngắn hạn, mang tính thử nghiệm, nhưng có giới hạn với các hệ thống phức tạp
Dự án thử nghiệm: trò chơi Battleship
- Chỉ với khoảng một giờ “Vibe Coding”, đã tạo ra trò chơi Battleship
- Cấu trúc để hai mô hình LLM đối đầu với nhau theo thời gian thực
- Có nhắc tới quan sát không chính thức rằng “4o mạnh hơn 4o-mini”
- Chưa có số liệu thống kê hay chỉ số so sánh hiệu năng cụ thể
Bối cảnh tổng thể
- Cho thấy nhờ sự phát triển của LLM, lập trình viên có thể nhanh chóng tạo ra ứng dụng có thể chạy được mà không cần trực tiếp xử lý mã chi tiết
- “Vibe Coding” có thể được xem là một ví dụ thử nghiệm cho một mô hình lập trình mới lấy AI làm trung tâm
1 bình luận
Ý kiến Hacker News
Mỗi năm tôi lại nghĩ rằng tiêu chuẩn chất lượng phần mềm không thể xuống thấp hơn nữa, nhưng lần nào cũng nhận ra mình đã sai
Tôi cũng thấy vui khi làm những dự án nhẹ nhàng theo kiểu này
Nhìn cách tiếp cận này, tôi có cảm giác như sản phẩm được nộp bởi một “người vừa ăn vừa code”
Tôi lo rằng nếu bắt đầu code theo cách này thì khả năng giải quyết vấn đề khó sẽ bị mai một
Dạo này ngày càng có nhiều lập trình viên AI-native học ngay từ đầu theo kiểu này
Những công cụ kiểu “WYSIWYG có thể chỉnh sửa bằng lệnh ngôn ngữ tự nhiên” có lẽ sẽ có một vách đá độ khó dựng đứng, giống như giới hạn của công cụ RAD
Có người nói “không nên học theo kiểu này”, nhưng tôi nghĩ điều quan trọng là cân bằng mức độ hoàn thiện so với công sức bỏ ra
Tôi nghĩ mảng CSS thì Vibe Coding là đủ dùng