W książce The Pragmatic Programmer pisarze wspominają o programowaniu przez przypadek . Wyjaśnia, co to jest, dlaczego jest spowodowany, jakie niebezpieczeństwa możesz napotkać, i porównuje to z polem minowym podczas wojny.
Czy oglądasz kiedyś czarno-białe filmy wojenne? Zmęczony żołnierz ostrożnie wysuwa się z zarośli. Przed nami polana: czy są jakieś miny, czy można bezpiecznie przejść? Nic nie wskazuje na to, że jest to pole minowe - żadnych znaków, drutu kolczastego ani kraterów. Żołnierz szturcha go bagnetem ziemi i krzywi się, oczekując eksplozji. Nie ma jednego Tak więc przez chwilę ostrożnie przechodzi przez pole, szturchając i szturchając go. W końcu, przekonany, że pole jest bezpieczne, prostuje się i maszeruje dumnie do przodu, by zostać roztrzaskanym na strzępy.
Początkowe sondy żołnierza do wykopalisk nic nie ujawniły, ale było to po prostu szczęście. Doprowadzono go do fałszywego wniosku - z katastrofalnymi skutkami.
Jako programiści pracujemy również na polach minowych. Każdego dnia czekają na nas setki pułapek. Pamiętając opowieść o żołnierzu, powinniśmy uważać na wyciąganie fałszywych wniosków. Powinniśmy unikać programowania przez przypadek - polegając na szczęściu i przypadkowych sukcesach - na rzecz programowania celowo ...
Ale nie jestem bardzo zadowolony ze sposobu, w jaki opisują kwestię „jak to przezwyciężyć”. Tak, musisz pomyśleć przed napisaniem kodu, ale jak to ćwiczyć? Jedyne, co mogę myśleć, to dodanie funkcji do istniejących projektów Open Source, w których musisz mieć wiedzę zarówno na temat „tego, co robię teraz”, jak i „jak działają inne fragmenty kodu”, i nie ma to zastosowania kiedy piszesz własne projekty.
EDYTOWAĆ:
streszczenie z twoich postów:
- Nie zgaduj następnego ruchu, udowodnij, że jest poprawny
- W razie potrzeby test jednostkowy i refaktoryzacja w miarę możliwości
- Często dodawaj funkcje - kompiluj - testuj
- Jeśli nie potrafisz wyjaśnić kodu noobowi, prawdopodobnie programujesz przez przypadek.
BTW, trudno jest zaakceptować odpowiedź, to naprawdę trudne. Wszystkie odpowiedzi są naprawdę świetne :)