Mọi thứ đang trôi chảy. Công cuộc chinh phục mọi ngôn ngữ lập trình đang tiến hành thuận lợi. Bạn có một ngày "lý tưởng":
- Code chạy mượt
- Không lỗi
- Bạn tự tin đóng máy
👉 Và nghĩ:
"Wow, mệt quá, một ngày "chất như nước cất", thôi nghỉ, mai mở ra làm tiếp, easy thôi 😏"
Sáng hôm sau…
Bạn mở lại project, tâm hồn thư thái, yên trí là tiếp tục một ngày "chất như nước cất" nữa...
Bấm Run
👉 Và…
💥 LỖI
Bạn đứng hình.
"Ủa?? Hôm qua chạy ngon mà??? Rõ ràng đâu có thêm bớt cái gì đâu? Kỳ vậy ta?"
👉 Chào mừng bạn đến với một trong những trải nghiệm "đau lòng nhất ngành IT":
👉 Code hôm qua chạy, hôm nay lỗi
Code chạy hôm qua nhưng hôm nay lỗi thường do:
- thay đổi môi trường
- thay đổi dữ liệu
- cache
- version khác
- lỗi ẩn chưa lộ ra
- Ví dụ đời thường (rất thật)
👉 Hôm qua:
Bạn ăn bún bò ở quán A
Rất ngon
👉 Hôm nay quay lại:
- vẫn quán đó
- vẫn món đó
👉 Nhưng:
"Ủa… sao dở vậy???" 🤨
👉 Lý do có thể là:
- đổi đầu bếp
- đổi nguyên liệu
- nước dùng khác
👉 Code cũng vậy 😅
7 lý do phổ biến nhất
❌ 1. Bạn đã sửa code… mà quên
👉 Đây là lỗi "nghe ngu nhưng cực thật"
👉 Hôm qua:
echo "OK";
👉 Hôm nay:
echo $data['name'];
👉 Và $data… không tồn tại 🤡
👉 Bạn:
"Ủa sao lỗi???"
❌ 2. Dữ liệu đã thay đổi
👉 Hôm qua database có dữ liệu
👉 Hôm nay:
bị xóa
hoặc khác format
👉 Ví dụ:
$user = $_POST['username'];
👉 Hôm qua có form
👉 Hôm nay mở trực tiếp URL
→ lỗi 😅
❌ 3. Cache "chơi bạn"
👉 Trình duyệt / server cache
👉 Bạn sửa code
👉 Nhưng web vẫn chạy bản cũ
👉 Bạn:
"Mình sửa rồi mà???"
👉 Fix:
Ctrl + F5
clear cache
❌ 4. Environment thay đổi
👉 Hôm qua:
PHP 7
👉 Hôm nay:
PHP 8
👉 Một số code cũ:
→ lỗi ngay
👉 Hoặc:
local chạy OK
lên InfinityFree → lỗi
👉 Vì:
"luật chơi khác" 😅
❌ 5. File chưa upload đúng
👉 Bạn sửa file local
👉 Nhưng chưa upload
👉 Web vẫn chạy bản cũ
👉 Đây là lỗi:
"tưởng đã deploy… nhưng chưa" 🤡
❌ 6. Session / cookie thay đổi
👉 Hôm qua:
đã login
👉 Hôm nay:
session hết hạn
👉 Code:
echo $_SESSION['user'];
👉 → undefined 😅
❌ 7. Lỗi đã tồn tại từ trước (nhưng chưa "lộ mặt")
👉 Đây là "boss cuối"
👉 Hôm qua:
chạy đúng case → OK
👉 Hôm nay:
input khác → crash
👉 Ví dụ:
echo 10 / $x;
👉 Hôm qua:
$x = 2 → OK
👉 Hôm nay:
$x = 0 → 💀
Checklist "cứ theo là ra"
👉 Khi gặp case này, đừng hoảng
👉 Check theo thứ tự:
- Có sửa code gì không?
- Dữ liệu có thay đổi không?
- Cache đã clear chưa?
- Environment có khác không?
- File đã upload đúng chưa?
- Session/cookie còn không?
- Có case nào mới chưa test không?
👉 80% sẽ tìm ra trong 3 bước đầu 😏
Debug kiểu "đỡ đau đầu"
👉 In log:
var_dump($data);
👉 Hoặc:
echo "Đến bước 1";
👉 Đừng đoán mò
→ để code "nói chuyện" với bạn
Một sự thật rất "đau"
👉 Code không "tự nhiên" lỗi
👉 Luôn có lý do
👉 Chỉ là:
Bạn chưa tìm ra thôi 😅
Tổng kết
"Chạy hôm qua, lỗi hôm nay" là chuyện bình thường
👉 Không phải bạn dở
👉 Mà là:
- môi trường thay đổi
- dữ liệu thay đổi
- hoặc bạn… quên 😏
👉 Quan trọng là:
Debug có phương pháp
❓ FAQ nhanh
Có phải code bị "ma ám" không?
→ Không 😅
Có nên đập máy không?
→ Không (máy không có lỗi 🤡)
Làm sao tránh?
→ Test nhiều case + quản lý code tốt
👉 Bạn có thể cũng đang gặp:
Undefined index trong PHP
MySQL không connect
Python không chạy
(👉 đã có trong các bài trước)
Không có nhận xét nào:
Đăng nhận xét