Wyobraź sobie następujący scenariusz:
Wykryłeś, że w twoim (lub czyimś programie) jest błąd - funkcja daje nieprawidłowy wynik po podaniu określonego wejścia. Sprawdzasz kod i nie możesz znaleźć niczego złego: wydaje się, że po prostu wpada w błoto, gdy otrzyma te dane wejściowe.
Możesz teraz zrobić jedną z dwóch rzeczy: albo dalej analizujesz kod, aż znajdziesz właściwą przyczynę; lub policzkujesz bandaż, dodając if
instrukcję sprawdzającą, czy dane wejściowe są konkretnymi danymi wejściowymi - jeśli tak, zwróć oczekiwaną wartość.
Dla mnie stosowanie bandaża byłoby całkowicie niedopuszczalne. Jeśli kod zachowuje się nieoczekiwanie na tym wejściu, na jakie inne pominięte wejście zareaguje dziwnie? To po prostu nie wydaje się rozwiązaniem - po prostu odsuwasz problem pod dywan.
Ponieważ nawet nie zastanawiałbym się nad tym, jestem zaskoczony, jak często profesorowie i książki przypominają nam, że stosowanie poprawek „bandaż” nie jest dobrym pomysłem. Zastanawiam się więc: jak często występują tego rodzaju „poprawki”?