Powiedziałbym, że niezbędne jest zrozumienie każdego szczegółu, dlaczego występowały pewne błędy i dlaczego pewne zmiany wyeliminowały te błędy, a także często deweloperzy czasami uruchamiają program bez znajomości szczegółów, dlaczego poprawka zadziałała!
Sztuka zmieniania rzeczy do momentu zniknięcia błędu, bez zrozumienia, co go spowodowało lub dlaczego zmiana go naprawiła, jest często nazywana „programowaniem voodoo” i nie jest to komplement. Naprawdę nie ma możliwości, abyś był pewny, że naprawiłeś błąd, w przeciwieństwie do częściowego naprawienia go w konkretnym przypadku, który badałeś, jeśli nie rozumiesz, co go spowodowało.
W najgorszym przypadku nie zrobiłeś nic poza przeniesieniem błędu: pamiętam z pierwszego roku informatyki na uniwersytecie, kiedy wielu studentów uczyło się C i wskaźników po raz pierwszy, błędy wskaźnikowe często przestały się pojawiać, gdy zmieniały rzeczy losowo, ponieważ zmiany przestawiłyby struktury danych w pamięci na tyle, aby błąd wskaźnika nadepnął na inny kawałek pamięci. Oczywiście, że nie pomógł w ogóle .
Ale powiedziawszy to, komercyjne realia programowania są często takie, że zadowolenie klienta, że błąd został naprawiony, jest ważniejsze niż zadowolenie siebie. Nigdy nie polecałbym, aby zadeklarować coś naprawionego, jeśli nie masz pojęcia, co go spowodowało, ale jeśli widzisz, że jakiś kod był problematyczny, i przerobiłeś go, nawet jeśli nie jesteś w 100% pewien, jak to spowodowało błąd, który ma się objawić, czasami musisz po prostu przejść do następnego błędu, zanim klient zbyt głośno krzyczy o twoim powolnym postępie.