Hãy tưởng tượng kịch bản sau đây:
Bạn đã phát hiện ra rằng chương trình của bạn (hoặc của người khác) có lỗi - một hàm tạo ra kết quả sai khi đưa ra một đầu vào cụ thể. Bạn kiểm tra mã và không thể tìm thấy bất cứ điều gì sai: nó dường như bị sa lầy khi đưa ra đầu vào này.
Bây giờ bạn có thể thực hiện một trong hai điều sau: bạn kiểm tra mã thêm cho đến khi bạn tìm thấy nguyên nhân thực sự; hoặc bạn tát vào băng bằng cách thêm if
câu lệnh kiểm tra xem đầu vào có phải là đầu vào cụ thể này không - nếu có, trả về giá trị mong đợi.
Đối với tôi, áp dụng băng sẽ hoàn toàn không thể chấp nhận được. Nếu mã đang hoạt động không giới hạn trên đầu vào này, thì đầu vào nào khác mà bạn đã bỏ lỡ sẽ phản ứng kỳ lạ với? Nó hoàn toàn không giống một bản sửa lỗi - bạn chỉ đang giải quyết vấn đề dưới tấm thảm.
Vì tôi thậm chí sẽ không cân nhắc việc này, tôi ngạc nhiên về việc các giáo sư và sách thường xuyên nhắc nhở chúng tôi về việc áp dụng các bản sửa lỗi "băng bó" không phải là một ý tưởng hay. Vì vậy, điều này làm cho tôi tự hỏi: làm thế nào phổ biến là những loại "sửa chữa"?