Tại sao gỡ lỗi giống như công việc thám tử
By khoanc, at: 15:04 Ngày 02 tháng 10 năm 2025
Thời gian đọc ước tính: __READING_TIME__ phút


Giới thiệu
Gỡ lỗi là một trong những phần khó chịu nhất và cũng là phần đáng hài lòng nhất - trong phát triển phần mềm. Một lỗi lén lút vào ứng dụng Django hoặc React của bạn, và đột nhiên, không gì có ý nghĩa cả. Nhưng nếu bạn lùi lại một bước, bạn sẽ thấy nó không khác gì việc giải một cuốn tiểu thuyết trinh thám.
Tại Glinteco, chúng tôi thường so sánh việc gỡ lỗi với công việc thám tử. Quá trình này không chỉ là sửa chữa mã bị hỏng mà còn là tìm kiếm manh mối, phân tích nghi phạm và thu hẹp nguyên nhân một cách có hệ thống.
Hiện trường vụ án
Một người dùng báo cáo rằng luồng thanh toán của họ “chỉ treo máy.” Không có thông báo lỗi, không có traceback. Nhật ký ứng dụng trông bình thường. Doanh số giảm, vé hỗ trợ chất đầy.
Đây là một tội ác hoàn hảo.
Giống như một thám tử đến hiện trường vụ án, bước đầu tiên là thu thập chứng cứ: nhật ký, dữ liệu giám sát, những thay đổi mã gần đây. Mọi chi tiết đều quan trọng.
Manh mối và nghi phạm
Cũng giống như Sherlock Holmes kiểm tra dấu chân, dấu vân tay và tàn thuốc lá, các nhà phát triển có bộ manh mối riêng của họ:
-
Nhật ký → Dấu vân tay của ứng dụng của bạn. Chúng có cho thấy khoảng trống hoặc lỗi không?
-
Stack traces → Bằng chứng xác thực. Chính xác mã bị hỏng ở đâu?
-
Các commit gần đây → Những người cuối cùng được nhìn thấy gần hiện trường vụ án.
-
Thống kê hệ thống → Tiếng ồn nền: tăng đột biến CPU, truy vấn DB chậm, thời gian chờ mạng.
Đôi khi thủ phạm thực sự thậm chí không nằm trong mã của bạn. Đó là môi trường bao gồm máy chủ cấu hình sai, phụ thuộc bị thiếu hoặc chứng chỉ hết hạn.
Buổi thẩm vấn
Thám tử đặt câu hỏi, và các nhà phát triển cũng nên làm như vậy:
-
Lỗi này xuất hiện lần đầu tiên khi nào?
-
Lỗi này có thể tái tạo được hay gián đoạn?
-
Lỗi này ảnh hưởng đến tất cả người dùng hay chỉ các trường hợp cụ thể?
-
Gần đây đã có gì thay đổi trong hệ thống?
Việc tái tạo là phòng thẩm vấn của việc gỡ lỗi. Nếu bạn có thể khiến lỗi tự hiển thị theo lệnh, bạn đã đi được nửa chừng để bắt được nó.
Bước đột phá
Mỗi câu chuyện thám tử đều có khoảnh khắc mà manh mối nhỏ nhất làm sáng tỏ vụ án.
Trong việc gỡ lỗi, đó có thể là:
-
Một dấu chấm phẩy bị thiếu
-
Một lỗi lệch một đơn vị trong một mảng
-
Một biến môi trường bị quên trong môi trường sản xuất
Thám tử kết nối các điểm. Nhà phát triển sửa lỗi. Hệ thống trở lại bình thường.
Công cụ cần thiết
Cũng giống như thám tử sử dụng kính lúp và bột dấu vân tay, các nhà phát triển dựa vào các công cụ:
-
Sentry, Datadog, hoặc New Relic → bắt lỗi trong tự nhiên
-
Django Debug Toolbar → theo dõi dấu vết truy vấn
-
Git bisect → theo dõi khi nào lỗi được giới thiệu
-
Công cụ phân tích hiệu suất → phát hiện các điểm nghẽn hiệu năng.
Ngay cả các công ty công nghệ lớn cũng đầu tư mạnh vào các công cụ khả năng quan sát bởi vì nếu không có chúng, việc tìm lỗi giống như giải quyết tội phạm bị bịt mắt.
Bài học kinh nghiệm
Gỡ lỗi là công việc thám tử. Nó đòi hỏi sự kiên nhẫn, quan sát và suy luận logic. Bạn càng thu thập chứng cứ và loại bỏ nghi phạm nhanh chóng, bạn càng giải quyết vụ án nhanh chóng.
Tại Glinteco, chúng tôi không chỉ viết mã - chúng tôi điều tra, truy vết và giải quyết những bí ẩn đằng sau các vấn đề hiệu suất, sự cố và lỗi khó tìm. Đối với khách hàng của chúng tôi, điều đó có nghĩa là ít tội phạm hơn trong sản xuất và nhiều thời gian hơn để tập trung vào tăng trưởng.
Nếu ứng dụng của bạn giống như một cuốn tiểu thuyết trinh thám với quá nhiều vụ án chưa được giải quyết, hãy để chúng tôi đóng vai thám tử.