Anh em nghĩ sao khi tool đi fix bug lại chính là nguồn sinh ra bug? Các nhà khoa học đi đo vi nhựa vừa phát hiện ra họ bị chính găng tay của mình úp sọt.

Tưởng tượng anh em hì hục fix bug memory leak cả tháng trời, check tới check lui từng dòng code, để rồi phát hiện ra thằng cắn RAM ác nhất lại chính là cái tool profiler anh em đang dùng để debug. Cảm giác lúc đó chắc chỉ muốn đập mẹ bàn phím đúng không? Chúc mừng, giới khoa học vừa vướng phải một quả "Heisenbug" y chang như thế.
Nghiên cứu mới tinh của Đại học Michigan (U-M) vừa lòi ra một sự thật dở khóc dở cười. Chuyện là các giáo sư, tiến sĩ dạo này rất chăm chỉ đi đo đếm hạt vi nhựa (microplastics) ngoài môi trường. Làm việc trong lab thì dĩ nhiên phải đeo găng tay cao su (latex) và nitrile cho chuẩn quy trình, tránh lây nhiễm chéo.
Nhưng nhọ thay, cái gì cũng có giá của nó. Chính mấy cái găng tay xịn xò con bò này lại rụng ra một đống vi nhựa ngay vào mẫu thử của họ trong quá trình thao tác. Kết quả là data thu về bị "overestimation" (nói dân dã là đếm lố, ảo ma Canada). Code chạy mượt, pass mọi test case, nhưng output thì toàn rác do môi trường test tự chèn vào!
Dạo một vòng Hacker News, anh em dev và dân khoa học đang cười ra nước mắt vì quả bug logic kinh điển này. Có vài luồng quan điểm đang chiếm sóng:
Tóm cái váy lại, chuyện của mấy pháp sư phòng lab cũng là bài học xương máu cho anh em thợ code chúng ta. Đây là hiệu ứng Observer Effect (Hiệu ứng người quan sát) điển hình: Công cụ bạn dùng để đo lường hệ thống lại làm thay đổi luôn trạng thái của hệ thống đó.
Bài học rút ra là gì? Đừng tin bố con thằng nào, kể cả những công cụ tưởng chừng như default, chuẩn mực nhất. Cái IDE bạn dùng, thư viện bên thứ 3, hay cái Docker image tải trên mạng về... đôi khi bug nằm ngay trong đó chứ đ*o phải do logic code của ông đâu. Làm tech thì luôn phải chừa đường lùi và đặt câu hỏi về chính cái tool mình đang cày hàng ngày.
Nguồn tham khảo: University of Michigan News