Khóa Cơ bản · Bài 10/13 · Chặng 5 · Bắt lỗi trước khi khách hàng thấy

3 thất bại kinh điển và cách thoát

Cơ bản 4 phút đọc

Bài này đang khóa

Bụi Code học theo thứ tự: làm xong bài kiểm tra cuối Bài 9: Debug theo bằng chứng: báo lỗi cho AI đúng cách để mở bài này. Mỗi bài dựa trên bài trước, bỏ qua dễ hổng kiến thức.

Ba kiểu thất bại mà người mới Vibe Coding nào cũng gặp: AI xóa nhầm file, deploy xong trang trắng, và sửa một lỗi sinh ra ba lỗi mới. Mỗi case có cách thoát cụ thể.

Bạn sẽ làm được

  • Nhận ra 3 kiểu thất bại kinh điển trước khi chúng thành thảm họa.
  • Biết cách thoát cho từng kiểu: checkpoint, rollback, và dừng đúng lúc.
  • Hiểu vì sao 'làm lại từ đầu' hiếm khi là đáp án đúng.
Nội dung bài học

Vấn đề thật

Thất bại không phải là “có thể” — là “chắc chắn”. Người mới Vibe Coding nào cũng sẽ gặp ít nhất một trong ba kiểu dưới đây. Khác biệt giữa người bỏ cuộc và người đi tiếp không phải là tránh được thất bại, mà là biết cách thoát.

Case 1: AI xóa nhầm file

Hiện tượng: Bạn nhờ AI “dọn dẹp” hoặc “sửa lại cấu trúc”, quay lại thì mất file bang-gia.html — cả tuần làm việc trong đó.

Vì sao xảy ra: Bạn giao việc mơ hồ (“dọn dẹp giúp tôi”) mà không khoanh phạm vi. AI hiểu “dọn” theo nghĩa đen.

Cách thoát:

  1. Dừng ngay. Đừng nhờ AI “viết lại” — nó sẽ viết phiên bản khác, không phải bản của bạn.
  2. Kiểm tra checkpoint: git log --oneline tìm commit gần nhất còn file.
  3. Khôi phục file từ commit đó (hỏi AI: “khôi phục file bang-gia.html từ commit abc123, không đụng gì khác”).
  4. Sau này: commit sau mỗi lát đúng + không bao giờ nói “dọn dẹp” mà không liệt kê file được đụng.

Bài học: Checkpoint không phải để “lưu cho vui”. Nó là bảo hiểm.

Case 2: Deploy xong trang trắng

Hiện tượng: Trên máy chạy hoàn hảo. Deploy lên mạng: trang trắng tinh, không chữ không ảnh.

Vì sao xảy ra: 90% là đường dẫn sai. Trên máy bạn, file ảnh ở C:/Users/.../anh/logo.png. Trên server, đường dẫn đó không tồn tại. Hoặc bạn dùng đường dẫn tuyệt đối /images/logo.png trong khi deploy vào thư mục con.

Cách thoát:

  1. Mở trang đã deploy, bấm F12 → tab Console. Đọc dòng đỏ: nó sẽ ghi 404 và tên file không tải được.
  2. Sửa đường dẫn thành tương đối (./images/logo.png hoặc images/logo.png).
  3. Deploy lại. Kiểm tra lại trên điện thoại thật.

Bài học: “Trên máy chạy” chưa phải “chạy thật”. Luôn kiểm tra bản deploy bằng F12.

Case 3: Sửa một lỗi, đẻ ba lỗi mới

Hiện tượng: Lát 5 đang sửa lỗi nhỏ. AI sửa xong, menu gãy. Sửa menu, form hỏng. Sửa form, trang trắng. Bạn đang ở vòng xoáy.

Vì sao xảy ra: AI đã ngợp context (bài Vì sao AI quên và bịa). Nó không còn thấy bức tranh tổng thể, chỉ vá chỗ này rách chỗ kia. Càng sửa, “sự thật” trong mắt AI càng nhiễu.

Cách thoát:

  1. Dừng. Đây là kỷ luật khó nhất. Đừng “ráng thêm chút nữa”.
  2. Quay về checkpoint gần nhất còn chạy đúng (git log, khôi phục).
  3. Mở phiên mới. Dùng prompt Tóm tắt bàn giao phiên để lấy 5 mục từ phiên cũ.
  4. Giao lại việc với phạm vi nhỏ hơn (chia lát cắt nhỏ hơn nữa).

Bài học: Vòng xoáy sửa lỗi là dấu hiệu, không phải thử thách. Thấy 2-3 vòng không tiến triển là dừng.

Lỗi hay gặp

“Làm lại từ đầu cho sạch.” Hiếm khi đúng. Làm lại mất hết bài học từ lần trước, và bạn sẽ gặp lại đúng 3 case này ở dự án mới. Sửa từ checkpoint nhanh hơn và dạy bạn nhiều hơn.

Giấu thất bại. Không ghi lại mình đã sai ở đâu thì lần sau sai y hệt. Mỗi lần thoát được một case, ghi 3 dòng vào BUG_LOG.md: hiện tượng, nguyên nhân, cách thoát.

Đổ lỗi cho AI. AI là công cụ. Cả 3 case trên đều có nguyên nhân từ cách bạn giao việc và quản lý phiên — và đó là tin tốt, vì bạn sửa được.

Việc làm ngay

  1. Kiểm tra dự án của bạn: đã có checkpoint (commit) gần nhất chưa? Nếu chưa, commit ngay bây giờ với tin nhắn rõ ràng.
  2. Tạo file BUG_LOG.md trong thư mục dự án với 3 cột: Hiện tượng | Nguyên nhân | Cách thoát. Để trống — nó sẽ đầy dần, và đó là tài sản.
  3. Mở trang đã deploy (nếu có) bằng F12, kiểm tra tab Console có dòng đỏ nào không.

Tóm tắt

  • 3 thất bại kinh điển: AI xóa nhầm file, deploy trắng trang, vòng xoáy sửa lỗi.
  • Cách thoát chung: dừng → checkpoint → phiên mới → phạm vi nhỏ hơn.
  • “Làm lại từ đầu” hiếm khi là đáp án. Ghi lại thất bại vào BUG_LOG.md.
  • Thất bại không tránh được; không biết cách thoát mới là vấn đề.
Kiểm tra cuối bài

Trả lời đúng 3 câu để mở Bài 11

Sai thì đọc giải thích và làm lại, không giới hạn số lần.

Câu 1. AI vừa xóa nhầm file quan trọng. Việc đầu tiên nên làm là gì?
Câu 2. Deploy xong trang trắng tinh, trên máy vẫn chạy. Nguyên nhân khả dĩ nhất là gì?
Câu 3. Sửa một lỗi, sinh ra ba lỗi mới. Đây là dấu hiệu của gì?

Tiến độ lưu trên trình duyệt này. Đổi máy hoặc xóa dữ liệu trình duyệt sẽ mất tiến độ cho tới khi có tài khoản.

Bài này có giúp ích cho bạn không?

Cùng ngẫm một câu

Bạn đã từng gặp kiểu thất bại nào trong 3 kiểu này? Lúc đó bạn thoát bằng cách nào — và nếu làm lại, bạn sẽ làm khác điểm gì?

Tự trả lời vào NOTES.md của dự án bạn — đó là cách biến bài đọc thành việc làm thật.

Mời Bụi Code ly cà phê

Bụi Code miễn phí cho mọi người. AI viết code, còn người viết bài thì chạy bằng cà phê. Nếu bài học giúp được bạn, mời mình một ly nhé.

Kênh nhận ủng hộ đang được cập nhật. Muốn ủng hộ ngay, nhắn mình qua email phungnb@gmail.com.

Ủng hộ hoàn toàn tự nguyện. Chia sẻ Bụi Code cho một người đang cần cũng quý như một ly cà phê.