Chuyển đổi ngôn ngữ lập trình bất ngờ và sự cố phát sinh
Johnny, một lập trình viên được tuyển dụng với vai trò viết phần mềm trong ngôn ngữ Visual Basic (VB), ban đầu cho rằng công việc này chưa tương xứng với khả năng của mình. Tuy vậy, anh vẫn tiếp tục công việc. Tuy nhiên, khi được giao một dự án mới, Johnny quyết định sử dụng ngôn ngữ C# thay vì VB, dù lúc đó C# còn khá mới mẻ với anh. Anh chia sẻ với The Register rằng dự án này phần lớn đáp ứng được yêu cầu của khách hàng.
Tuy nhiên, sự cố xảy ra tại một đoạn mã xử lý chuỗi phức tạp, chịu trách nhiệm định tuyến các tác vụ trong hệ thống. Lỗi xuất hiện không thường xuyên và không rõ nguyên nhân: khoảng một nửa số lần chạy chương trình, đoạn mã thực thi đúng hoàn toàn, còn lại thì thất bại hoàn toàn.
Khó khăn trong tìm lỗi và bí ẩn được giải quyết vô tình
Johnny đã kiểm tra kỹ từng biến, từng điều kiện và từng phép biến đổi trong code nhiều lần nhưng không phát hiện ra điểm sai nào. Anh bắt đầu thực hiện các thay đổi nhỏ ngẫu nhiên nhằm mục đích làm lộ lỗi để dễ sửa chữa hơn. Trong số này, có một thay đổi phá vỡ hoàn toàn đoạn mã và anh đã phải hoàn tác nó.
Điều kỳ lạ là sau khi khôi phục đoạn mã về trạng thái ban đầu, lỗi lại biến mất một cách khó hiểu. Johnny đã so sánh các phiên bản, rà soát lại từng bước thay đổi nhưng vẫn không thể giải thích được nguyên nhân gây lỗi và cách nó biến mất.










