Ich habe in den letzten drei Jahren Software entwickelt, aber erst kürzlich wurde mir klar, wie ignorant ich in Bezug auf gute Praktiken bin. Dies hat mich veranlasst, das Buch Clean Code zu lesen , das mein Leben positiv beeinflusst, aber ich kämpfe darum, einen Einblick in einige der besten Ansätze zum Schreiben meiner Programme zu bekommen.
Ich habe ein Python-Programm, in dem ich ...
- Verwenden Sie argparse
required=True
, um zwei Argumente zu erzwingen, die beide Dateinamen sind. Der erste ist der Name der Eingabedatei, der zweite der Name der Ausgabedatei - haben eine Funktion,
readFromInputFile
die zuerst prüft, ob ein Eingabedateiname eingegeben wurde - haben eine Funktion,
writeToOutputFile
die zuerst prüft, ob ein Ausgabedateiname eingegeben wurde
Mein Programm ist klein genug, um zu glauben, dass das Einchecken von Nr. 2 und Nr. 3 überflüssig ist und entfernt werden sollte, wodurch beide Funktionen von einer unnötigen if
Bedingung befreit werden. Ich bin jedoch auch zu der Überzeugung gelangt, dass "Doppelprüfungen in Ordnung sind" und möglicherweise die richtige Lösung in einem Programm sind, in dem die Funktionen von einem anderen Ort aus aufgerufen werden können, an dem das Parsen von Argumenten nicht erfolgt.
(Auch wenn das Lesen oder Schreiben fehlschlägt, muss ich try except
in jeder Funktion eine entsprechende Fehlermeldung auslösen.)
Meine Frage ist: Ist es am besten, alle redundanten Zustandsüberprüfungen zu vermeiden? Sollte die Logik eines Programms so solide sein, dass Überprüfungen nur einmal durchgeführt werden müssen? Gibt es gute Beispiele, die dies oder das Gegenteil veranschaulichen?
EDIT: Vielen Dank für die Antworten! Ich habe von jedem etwas gelernt. Wenn ich so viele Perspektiven sehe, verstehe ich viel besser, wie ich dieses Problem angehen und anhand meiner Anforderungen eine Lösung finden kann. Vielen Dank!