Jest świetna książka, którą przeczytałem na ten temat, zatytułowana „ Dlaczego programy nie działają” , która przedstawia różne strategie znajdowania błędów, od zastosowania metody naukowej do izolacji i rozwiązania błędu, po debugowanie delta. Inną interesującą częścią tej książki jest to, że eliminuje ona termin „błąd”. Podejście Zellera to:
(1) Programista tworzy defekt w kodzie. (2) Wada powoduje infekcję (3) Infekcja się rozprzestrzenia (4) Infekcja powoduje awarię.
Jeśli chcesz poprawić swoje umiejętności debugowania, bardzo polecam tę książkę.
Z własnego doświadczenia wynika, że w naszej aplikacji znalazłem wiele błędów, ale zarządzanie po prostu naciska na nas, aby udostępnić nowe funkcje. Często słyszałem: „Znaleźliśmy ten błąd, a klient jeszcze go nie zauważył, więc zostaw go, dopóki nie zauważy”. Myślę, że bycie reaktywnym w przeciwieństwie do proaktywnego naprawiania błędów jest bardzo złym pomysłem, ponieważ kiedy przychodzi czas na naprawę, masz inne problemy, które wymagają rozwiązania, a zarządzanie funkcjami wymaga natychmiastowego działania, więc jesteś złapany jak najszybciej w błędnym cyklu, który może prowadzić do dużego stresu i wypalenia, a ostatecznie do wadliwego systemu.
Komunikacja jest także kolejnym czynnikiem w przypadku wykrycia błędów. Wysłanie wiadomości e-mail lub udokumentowanie jej w narzędziu do śledzenia błędów jest w porządku i dobrze, ale z własnego doświadczenia wynika, że inni programiści odnajdują podobny błąd i zamiast ponownie użyć rozwiązania podjętego w celu naprawy kodu (ponieważ o tym zapomnieli ), dodają własne wersje, więc masz w swoim kodzie 5 różnych rozwiązań, przez co wygląda to na bardziej rozdętą i mylącą. Tak więc, kiedy naprawisz błąd, upewnij się, że kilka osób zapoznało się z poprawką i przekazało informacje zwrotne na wypadek, gdyby naprawili coś podobnego i znaleźli dobrą strategię radzenia sobie z tym.
limist wspomniał o książce The Pragmatic Programmer, która zawiera interesujące materiały na temat naprawiania błędów. Korzystając z przykładu podanego w poprzednim akapicie, przyjrzałbym się temu: Entrofia oprogramowania , w której zastosowano analogię zepsutą wdową. Jeśli pojawią się dwa zepsute okna, twoja drużyna może być apatyczna, aby je naprawić, chyba że podejmiesz proaktywne podejście.