← 返回列表

Series Phỏng vấn AI 15: Những cạm bẫy thường gặp của Vibe Coding?

Chế độ "cảm giác/không khí" của Vibe Coding rất thú vị khi tạo mẫu nhanh và khám phá sáng tạo, nhưng nếu không kiểm soát, dễ rơi vào một số cạm bẫy điển hình. Dưới đây là tổng kết từ năm khía cạnh: Chất lượng mã, Khả năng bảo trì, Bảo mật, Sự tiến hóa yêu cầu, và Cộng tác nhóm


1. Cạm bẫy chất lượng mã

Vì Vibe Coding dựa vào lặp lại dạng hội thoại, mỗi lần người dùng đưa ra yêu cầu chỉnh sửa mơ hồ (ví dụ: "làm cho nút này cảm giác công nghệ hơn"), AI có xu hướng thêm mã mới thay vì tái cấu trúc logic cũ. Nó không biết mã cũ nào đã vô hiệu và không dám xóa, dẫn đến sự tích tụ mã dư thừa và mã chết. Đồng thời, AI không có "bộ nhớ phong cách mã" thống nhất, mỗi lần tạo có thể tuân theo quy tắc đặt tên khác nhau (tùy thuộc vào tính ngẫu nhiên của mẫu huấn luyện), cùng với việc người dùng hiếm khi đưa ra các ràng buộc rõ ràng, cuối cùng mã trở nên lộn xộn và khó dự đoán. Tóm lại:

  1. Mã dư thừa và mã chết: Sau nhiều lần sửa chữa, AI để lại các triển khai cũ, khối mã bị comment, import không sử dụng, vì rủi ro xóa cao, nó chọn giữ lại.
  2. Đặt tên và phong cách không nhất quán: AI trong các vòng khác nhau ngẫu nhiên lấy phong cách từ dữ liệu huấn luyện, nếu người dùng không bắt buộc quy tắc sẽ trộn lẫn camelCase, underscore, dấu cách.
  3. Lỗi logic ẩn: AI có xu hướng tạo mã đúng cho "đường dẫn phổ biến", nhưng các điều kiện biên (null, giá trị cực, đồng thời) thường bị bỏ qua vì các mẫu này ít trong dữ liệu huấn luyện.

2. Cạm bẫy khả năng bảo trì

Tốc độ lặp lại của Vibe Coding rất nhanh, cả người dùng và AI đều tập trung vào "chức năng hiện tại có khả dụng không", hầu như không có thời gian viết tài liệu, chú thích hoặc tái cấu trúc. AI thiếu bộ nhớ dài hạn, sẽ không chủ động thêm docstring cho hàm, cũng không xem xét nhà phát triển tiếp theo. Ngoài ra, AI có xu hướng "xử lý nhu cầu trước mắt", hoặc thiết kế quá mức một khuôn khổ chung (nghĩ rằng người dùng sẽ cần sau này), hoặc sao chép-dán để triển khai nhanh, dẫn đến sự hỗn loạn về mức trừu tượng. Tóm lại:

  1. Thiếu tài liệu và chú thích: AI mặc định xuất mã "tự giải thích", nhưng thực tế các biểu thức chính quy hoặc thuật toán phức tạp khó hiểu; nếu người dùng không yêu cầu, nó sẽ không viết tài liệu.
  2. Trừu tượng quá mức hoặc thiếu trừu tượng: AI đôi khi áp dụng các mẫu thiết kế phổ biến (như Factory, Strategy) ngay cả khi vấn đề đơn giản; đôi khi vì lười trích xuất hàm chung, nó sao chép trực tiếp khối mã.

3. Cạm bẫy bảo mật

Dữ liệu huấn luyện của AI chứa nhiều mã nguồn mở, trong đó không thiếu các lỗ hổng lịch sử (như nối chuỗi SQL, mã hóa cứng khóa). Trong Vibe Coding, người dùng hiếm khi chủ động yêu cầu "sử dụng truy vấn tham số hóa" hoặc "đọc khóa từ biến môi trường", vì vậy AI sẽ sử dụng mẫu phổ biến nhất (và thường không an toàn). Ngoài ra, AI không có ý thức về "mô hình đe dọa", sẽ không chủ động kiểm tra lọc đầu vào, tối thiểu hóa quyền, vì nó chỉ quan tâm đến triển khai chức năng. Tóm lại:

  1. Lỗ hổng tiêm: AI mặc định sử dụng nối chuỗi để xây dựng SQL/lệnh, vì cách này phổ biến nhất trong các hướng dẫn đơn giản.
  2. Mã hóa cứng thông tin nhạy cảm: Các mẫu trong dữ liệu huấn luyện thường viết cứng API Key, AI sẽ bắt chước mô hình này.
  3. Quyền quá mức: Để tiện lợi, AI thường dùng sudo hoặc chế độ w+ để mở tệp mà không xem xét quyền tối thiểu cần thiết.

4. Cạm bẫy sự tiến hóa yêu cầu

Vibe Coding không có ranh giới rõ ràng. Người dùng nói "thêm một chức năng", AI sẽ cố gắng đáp ứng, nhưng nó không biết điều gì là "ngoài phạm vi". AI cũng không có khái niệm ưu tiên, có thể triển khai ba tính năng bổ sung cùng lúc, làm lu mờ chức năng cốt lõi. Đồng thời, mỗi lần sửa lỗi mới, AI không xem xét lại chức năng cũ, thường xảy ra vấn đề hồi quy: sửa A, hỏng B. Tóm lại:

  1. Mở rộng phạm vi: Để "làm hài lòng người dùng", AI sẽ chủ động thêm các chức năng có vẻ liên quan nhưng không cần thiết (ví dụ: máy tính thêm lịch sử).
  2. Suy giảm chức năng: Khi sửa một lỗi, vì không hiểu logic tổng thể, AI sửa đổi một hàm chung, gây ra lỗi cho các chức năng khác phụ thuộc vào nó.

5. Cạm bẫy cộng tác nhóm

Quá trình đối thoại của Vibe Coding là tương tác riêng tư giữa cá nhân và AI, không để lại tài liệu đặc tả hoặc ghi chép quyết định thiết kế có thể chuyển giao. Các thành viên nhóm khác nhau đối thoại riêng với AI, nhận được mã theo phong cách riêng, khi hợp nhất xảy ra nhiều xung đột. Ngoài ra, AI không tự động tạo commit message hoặc nhật ký thay đổi, lý do tiến hóa mã bị mất, người bảo trì sau này chỉ có thể đoán. Tóm lại:

  1. Bản dựng không tái tạo: Những người khác nhau, thời gian khác nhau sử dụng cùng một prompt, AI sẽ xuất ra các triển khai khác nhau (vì tính ngẫu nhiên của mẫu).
  2. Thiếu theo dõi thay đổi: Không có tài liệu thiết kế, không có commit message giải thích "tại sao thay đổi này", mã trở thành hộp đen.

评论

暂无已展示的评论。

发表评论(匿名)