IT nói tiếng người
Cơ bảnMốc 2 · Đọc hiểu được

🔎 Debug là gì?

Tìm và sửa nguyên nhân của lỗi.

1
Hiểu nó là gì

Debug là công việc quan sát, đặt giả thuyết và kiểm tra để biết vì sao bug xảy ra.

Nói theo đời thường:
Giống thợ sửa xe lần theo dấu hiệu để biết xe không nổ máy vì hết xăng, yếu bình hay hỏng bugi.

⚠ Chỗ ẩn dụ này hỏng

Thợ sửa xe lần theo dấu hiệu — nhưng chiếc xe không đổi trạng thái trong lúc thợ đang xem, còn phần mềm thì có.

Nhiều bug biến mất ngay khi bạn thêm dòng log vào để quan sát, vì dòng đó làm thay đổi thời điểm chạy. Đây là loại bug khó nhất trong nghề, và nó lý giải vì sao debug đôi khi giống săn ma hơn là sửa xe.

2
Code trông thế nào
// Cách nhanh nhất và vẫn hiệu quả nhất
console.log('gio hang:', gioHang)

// Dừng lại ngay tại dòng này để soi mọi biến
debugger

// Thu hẹp dần: nửa trên hay nửa dưới gây lỗi?

Debug là thu hẹp phạm vi, không phải đọc code chằm chằm cho tới lúc nhìn ra.

3
Khi nào bạn dùng nó

✓ Dùng khi

  • Có bug tái hiện được
  • Cần biết giá trị thật của biến tại một thời điểm

✗ Đừng dùng khi

  • Chưa tái hiện được lỗi (đi tìm cách tái hiện trước đã)
  • Đoán mò rồi sửa bừa xem có hết không
Chưa cần biết: breakpoint có điều kiện, debug từ xa, đọc stack trace nhiều tầng, git bisect.
Để dành tới Mốc 3 — Tự dựng được: Bạn tự đưa được một trang lên mạng, và biết phải sờ vào đâu khi nó không lên.
Dấu hiệu bạn đã cần học nó: Khi lỗi chỉ xuất hiện trên production và bạn không tài nào tái hiện được ở máy.
4
Đi đâu tiếp

🧪 Thử 2 phút, không cần cài gì

F12 → Sources, mở một file JS bất kỳ, bấm vào số dòng để đặt breakpoint, rồi thao tác trên trang. Trang đứng lại và bạn thấy mọi biến tại đúng khoảnh khắc đó.
← Xem tất cả thuật ngữ