Re: Code-Review zur Thematik "Konstanten"
Verfasst: Samstag 11. Dezember 2021, 19:37
@Buchfink: Das Aufsetzen vom Logging gehört da eher nicht rein. Das vermischt man nicht mit der Programmlogik. Eine der wenigen Sachen die man manchmal auch schon auf Modulebene macht, wenn man das schon für Code auf Modulebene haben möchte, beispielsweise für die Initialisierung von Konstanten, oder ansonsten als erstes in der Hauptfunktion.
In der Logging-Meldung würde man nicht selbst so etwas wie "Fehler" schreiben. Das wäre die Aufgabe des Loggers die Stufe/den Schweregrad auszugeben, und bei "Fehler" wäre das dann auch nicht `logging.debug()` sondern `logging.error()`. Oder wenn es nicht ganz so schwerwiegend ist `logging.warning()`.
Die Pfade/Dateinamen würde ich hier als Konstanten setzen, denn wenn die nicht als Argumente übergeben werden, dann stehen die ja irgendwo mitten im Code und man muss die erst suchen wenn man sie ändern möchte.
Und da ist in der Tat einiges an Redundanz. Du benutzt `Path` immer nur um schon komplette Pfade in Form von Zeichenketten zu verpacken, und nicht um die aufzubauen.
Die Namen sind auch falsch herum. Ein `path_log` ist ein Log in dem Pfade protokolliert werden. Ein `log_path` ist ein Pfad wo Logdateien liegen oder der Pfad einer Logdatei.
Also eher so etwas:
Wobei wie gesagt mindestens `base_path` als Konstante oder als Argument sinnvoller wäre.
Falls das Ganze nur zum Anlegen einer Datei mit fehlerhaften Einträgen aus der Sprüchedatei ist, würde ich da kein Logging für benutzen bzw. IMHO missbrauchen.
In der Logging-Meldung würde man nicht selbst so etwas wie "Fehler" schreiben. Das wäre die Aufgabe des Loggers die Stufe/den Schweregrad auszugeben, und bei "Fehler" wäre das dann auch nicht `logging.debug()` sondern `logging.error()`. Oder wenn es nicht ganz so schwerwiegend ist `logging.warning()`.
Die Pfade/Dateinamen würde ich hier als Konstanten setzen, denn wenn die nicht als Argumente übergeben werden, dann stehen die ja irgendwo mitten im Code und man muss die erst suchen wenn man sie ändern möchte.
Und da ist in der Tat einiges an Redundanz. Du benutzt `Path` immer nur um schon komplette Pfade in Form von Zeichenketten zu verpacken, und nicht um die aufzubauen.
Die Namen sind auch falsch herum. Ein `path_log` ist ein Log in dem Pfade protokolliert werden. Ein `log_path` ist ein Pfad wo Logdateien liegen oder der Pfad einer Logdatei.
Also eher so etwas:
Code: Alles auswählen
base_path = Path("Daten", "WortspielGenerator")
sayings_file_path = base_path / "Sprueche_raw.txt"
logs_path = base_path / "logs"
logs_path.mkdir(parents=True, exist_ok=True)
log_file_path = logs_path / "Sprueche_ausgemustert.txt"
Falls das Ganze nur zum Anlegen einer Datei mit fehlerhaften Einträgen aus der Sprüchedatei ist, würde ich da kein Logging für benutzen bzw. IMHO missbrauchen.