Thứ Hai, 4 tháng 5, 2026

Debug là gì? Và cách debug cho người mới (không còn ngồi “đoán mò” nữa )

Một câu chuyện ngoài lề: Đang chạy xe...tắt máy! Bạn coi bình xăng: còn xăng. Vậy là do cái gì ta? Bạn mở nắp capo lên nhìn nhìn ngó ngó có vẻ rất "chiên da"...Rờ rờ mấy con vít, lắc lắc mấy sợi dây.

Quay vào xe đề máy lại: Vẫn không có gì xảy ra..Trong lập trình, nhiều khi chúng ta sẽ gặp trường hợp tương tự. Bạn viết code.


Bạn bấm Run.


👉 Và…


💥 LỖI


Bạn nhìn màn hình, rồi nhìn code.


5 giây…

10 giây…


👉 Sau đó bắt đầu:


  • sửa linh tinh
  • thêm bớt vài dòng
  • copy Google
  • cầu nguyện 🙏


👉 Nếu bạn thấy quen…


👉 Chúc mừng: bạn đang chưa biết debug 😅


Debug là quá trình tìm và sửa lỗi trong chương trình.

Người mới thường debug bằng cách đoán mò, nhưng cách đúng là:


  • xác định lỗi
  • khoanh vùng
  • kiểm tra từng bước


Debug là gì?


Nói đơn giản:


Debug = tìm xem code của bạn sai ở đâu


👉 Không phải:


  • sửa bừa
  • đoán mò
  • hy vọng nó chạy 😅


👉 Debug là:


"điều tra hiện trường vụ án" 🔍


Ví dụ đời thường (rất thật)


👉 Bạn bật đèn… không sáng


Bạn có 2 cách:


❌ Cách 1 (của newbie)

  • đập cái đèn
  • thay bóng. Hy vọng sẽ ổn!
  • chửi điện lực


👉 may thì trúng 😅


✅ Cách 2 (debug đúng nghĩa)

  1. kiểm tra công tắc
  2. kiểm tra ổ điện
  3. kiểm tra bóng


👉 tìm ra đúng chỗ hỏng


👉 Code cũng y chang


Sai lầm lớn nhất của người mới


👉 Khi code lỗi:


"Chắc do dòng này…"


👉 rồi sửa


👉 rồi lại lỗi


👉 rồi sửa tiếp


👉 Đây gọi là:


debug bằng niềm tin 🤡


👉 Và thường:


mất 2 tiếng

vẫn không fix được

Cách debug đúng (cực kỳ quan trọng)

🔥 Bước 1: Đọc lỗi (đừng bỏ qua!)


👉 Ví dụ:


Undefined index: username


👉 Thay vì hoảng, hãy đọc:


"Undefined" → chưa tồn tại

"username" → key này


👉 Lỗi đang nói chuyện với bạn 😏


🔥 Bước 2: Xác định "chết ở đâu"


👉 Thêm log:


echo "Đến bước 1";

echo "Đến bước 2";


👉 Nếu chỉ thấy "bước 1"


→ lỗi nằm sau đó


👉 Cách này:


đơn giản

nhưng cực mạnh

🔥 Bước 3: In dữ liệu ra xem


👉 Đừng đoán


👉 Hãy nhìn


PHP:


var_dump($data);


Python:


print(data)


👉 80% bug sẽ lộ mặt 😏


🔥 Bước 4: Thu nhỏ vấn đề


👉 Code 100 dòng → lỗi


👉 Đừng nhìn 100 dòng


👉 Hãy:


  • comment bớt
  • giữ lại phần nhỏ nhất


👉 Giống như:


tìm kim trong đống rơm

→ thì dọn bớt rơm đi 😅


🔥 Bước 5: Test từng trường hợp


👉 Ví dụ:


echo 10 / $x;


👉 Test:


x = 2 → OK

x = 0 → 💀


👉 Bạn sẽ hiểu lỗi ngay


Ví dụ debug thực tế (rất quen)

❌ Code lỗi:

$username = $_POST['username'];

echo $username;


👉 Lỗi:


Undefined index

✅ Debug:


👉 Bước 1: kiểm tra


var_dump($_POST);


👉 Kết quả:


array(0) { }


👉 Aha!


→ chưa submit form 😅


👉 Fix:


$username = $_POST['username'] ?? '';


Một "tư duy" cực quan trọng


👉 Khi code lỗi:


Đừng hỏi: "Sao nó lỗi???"


👉 Hãy hỏi:


  • "Dữ liệu đang là gì?"
  • "Code chạy tới đâu?" Cái này rất quan trọng. Bạn có thể đơn giản dùng lênh in để xem code chạy tới đâu.


👉 Bạn sẽ:


  • bình tĩnh hơn
  • debug nhanh hơn
  • Một sự thật hơi "đau"


👉 Dev giỏi ≠ code không lỗi


👉 Dev giỏi =


debug nhanh hơn 😏


Checklist debug cho người mới


👉 Lưu lại cái này, cực hữu ích:


  1. Đọc lỗi kỹ
  2. In dữ liệu ra
  3. Xác định chỗ chết
  4. Thu nhỏ code
  5. Test từng case


👉 Làm đúng 5 bước này:

→ bạn đã hơn 80% newbie


Tổng kết


Debug không phải kỹ năng "cao siêu"


👉 Nó chỉ là:


  1. kiểm tra
  2. quan sát
  3. suy luận


👉 Nhưng:


Nếu không biết debug

→ bạn sẽ "mắc kẹt" mãi 😅


FAQ nhanh


Có tool debug không?

→ Có (gdb, debugger…), nhưng người mới nên bắt đầu bằng print/log


Debug có khó không?

→ Không, nếu có phương pháp


Bao lâu thì quen debug?

→ Sau vài chục lần "ăn hành" 😏


👉 Bạn có thể cũng đang gặp:

Code chạy hôm qua, hôm nay lỗi

Undefined index

MySQL không connect


(👉 tất cả đều liên quan đến debug 😅)


Không có nhận xét nào:

Đăng nhận xét