Nguồn gốc của Vibe Coding
Bạn còn nhớ cái ngày mà bạn ngừng gõ từng dòng mã không. Bạn bắt đầu nhấn phím Tab và để một Mô hình Ngôn ngữ Lớn (LLM) hoàn thiện ý tưởng của mình.
Giữa năm 2024 và đầu năm 2025, việc phát triển phần mềm đã thay đổi. Chúng ta chuyển từ cú pháp nghiêm ngặt sang một trạng thái dòng chảy thuần túy. Andrej Karpathy gọi đây là Vibe Coding.
Vibe Coding có nghĩa là xây dựng phần mềm thông qua trực giác thay vì thiết kế tỉ mỉ. Bạn không còn viết logic theo từng dòng nữa. Bạn đóng vai trò như một người nhạc trưởng. Bạn đánh giá kết quả dựa trên cảm giác và cách hệ thống vận hành.
Điều này mang lại cảm giác như một siêu năng lực. Các tác vụ như thiết lập máy chủ hoặc viết truy vấn SQL chỉ mất vài giây. Các nhà phát triển cá nhân có thể ra mắt sản phẩm nhanh hơn bao giờ hết.
Nhưng tốc độ này ẩn chứa một cái bẫy.
Khi bạn giao phó việc viết mã cho AI mà không hiểu các nguyên tắc cơ bản, khả năng tư duy phản biện của bạn sẽ giảm xuống. Bạn phụ thuộc vào một "chiếc hộp đen". Bạn có được mã nguồn nhanh chóng, nhưng bạn không biết liệu nó có khả năng bảo trì hay không.
Chu trình Vibe Coding trông như thế này:
- Viết một câu lệnh (prompt) để thêm một tính năng.
- Chạy mã và xem nó có hoạt động không.
- Nếu thất bại, hãy sao chép lỗi gửi lại cho AI và yêu cầu nó sửa.
Cách này hiệu quả với các bản mẫu (prototype). Nhưng nó thất bại đối với các kiến trúc thực thụ. Điều này dẫn đến mã Frankenstein (Frankenstein code).
Mã Frankenstein là một mớ hỗn độn các mảnh vụn AI được khâu lại với nhau. Mỗi mảnh giải quyết một vấn đề nhỏ, nhưng toàn bộ hệ thống lại thiếu đi một tầm nhìn tổng thể.
Khi dự án của bạn lớn dần, bạn sẽ thấy những vấn đề này:
- Các khuôn mẫu không nhất quán. AI sử dụng các phong cách khác nhau trong mỗi tệp.
- Sự phụ thuộc quá mức (extreme coupling). AI chọn con đường dễ dàng và phá vỡ ranh giới giữa các module.
- Sự mù quáng về ngữ cảnh. AI quên các hàm hiện có và tạo ra các hàm trùng lặp hoặc các lỗi mới.
Kết quả là một hệ thống mong manh. Không con người nào hiểu được nó. AI không thể thay đổi nó mà không làm hỏng mọi thứ khác.
Vibe Coding đã giúp việc phát triển phần mềm trở nên dễ tiếp cận hơn. Nó loại bỏ các tác vụ nhàm chán. Nhưng tốc độ mà không có định hướng sẽ dẫn đến sự phá sản về kỹ thuật (technical bankruptcy).
Để xây dựng các hệ thống có khả năng mở rộng, bạn cần nhiều hơn là chỉ "vibe". Bạn cần sự khắt khe và kiểm soát chất lượng.
Nguồn: https://dev.to/jcmexdev/el-origen-del-vibe-coding-j00
Cộng đồng học tập tùy chọn: https://t.me/GyaanSetuAi
