Tworzę oprogramowanie przez ostatnie trzy lata, ale niedawno obudziłem się, jak nieświadomy dobrych praktyk. Doprowadziło mnie to do przeczytania książki „ Czysty kod” , która zmienia moje życie na lepsze, ale staram się uzyskać wgląd w niektóre z najlepszych podejść do pisania moich programów.
Mam program w języku Python, w którym ...
- użyj argparse
required=True
do wymuszenia dwóch argumentów, które są nazwami plików. pierwszy to nazwa pliku wejściowego, drugi to nazwa pliku wyjściowego - mają funkcję,
readFromInputFile
która najpierw sprawdza, czy wprowadzono nazwę pliku wejściowego - mają funkcję,
writeToOutputFile
która najpierw sprawdza, czy wprowadzono nazwę pliku wyjściowego
Mój program jest na tyle mały, że wierzę, że sprawdzanie w punktach 2 i 3 jest zbędne i powinno zostać usunięte, uwalniając w ten sposób obie funkcje od niepotrzebnego if
stanu. Zostałem jednak przekonany, że „podwójne sprawdzanie jest w porządku” i może być właściwym rozwiązaniem w programie, w którym funkcje można wywoływać z innej lokalizacji, w której nie występuje analiza argumentów.
(Ponadto, jeśli odczyt lub zapis nie powiedzie się, mam try except
w każdej funkcji, aby wywołać odpowiedni komunikat o błędzie.)
Moje pytanie brzmi: czy najlepiej jest unikać sprawdzania wszystkich zbędnych warunków? Czy logika programu powinna być tak solidna, że kontrole należy wykonywać tylko raz? Czy są jakieś dobre przykłady, które ilustrują to lub odwrotnie?
EDYCJA: Dziękuję wszystkim za odpowiedzi! Nauczyłem się czegoś od każdego. Widok tak wielu perspektyw pozwala mi lepiej zrozumieć, jak podejść do tego problemu i znaleźć rozwiązanie na podstawie moich wymagań. Dziękuję Ci!