Wieviel Zeilen codet ihr pro Filer?

1 Antwort

Es ist nicht erstrebenswert, möglichst viele Codezeilen in einer Datei zu sammeln und generell geht es auch nicht darum, Software mit möglichst vielen Zeilen aufzublasen. Von relevantem Interesse ist stattdessen, ein Problem zu lösen.

Wie du schon selbst festgestellt hast, wird es bei vielen Zeilen schwerer, den Überblick zu behalten, was zum einen das Fehlerrisiko und zum anderen den Zeitaufwand für Anpassungen/Erweiterungen erhöht.

Deshalb ist es vorteilhaft, Abläufe (wenn es sich anbietet) zu generalisieren und prinzipiell aufzuteilen. Für Letzteres gibt es genügend Hilfsmittel (Funktionen, Klassen, Module/Cogs).

Achte darauf, Code nach ganz klaren, eindeutigen Funktionalitäten (Zielen) zu ordnen. Eine Funktion addiere würde beispielsweise nur die Summe von Zahlen berechnen aber das Ergebnis nicht auch auf der Konsole ausgeben (andernfalls würde sie bereits zwei Funktionalitäten statt nur einer ausführen; es ist oft besser, Seiteneffekte zu reduzieren). Wenn ein Funktionskörper merklich anschwillt (hier gibt es verschiedene Faustregeln, z.B. ein Maximum von 30 Codezeilen), dann solltest du versuchen, Code in Hilfsfunktionen auszulagern.

Bei Klassen und Modulen/Cogs kann man ähnlich vorgehen: Eine Klasse XY sollte nur einem Zweck Z dienen (z.B. die Blaupause für ein Rechner-Objekt liefern, welches nur Funktionen und evt. Zustände für Rechenoperationen beinhaltet). Ein Modul wiederum bündelt Elemente, die zusammen einem / ähnlichen funktionalen Zweck/-en dienen.

Überlege dir am besten stets im Vorfeld, wie das System aussieht, welches du für deine Problemlösung benötigst. Das heißt, du müsstest als Erstes ermitteln, welche Akteure es in deinem Programm gibt, welche Zustände und Verhaltensweisen sie haben und wie sie miteinander interagieren. Es entspricht dem klassischen objektorientierten Ansatz. Du kannst dir für so etwas Skizzen oder (UML-)Diagramme (wie Use Case, Aktivität, Objekt-/Klassendiagramm, Zustand, usw.) erstellen.

Auf dieser Basis fällt es leichter, Programmteile logisch zu gruppieren und dazu eine Projektstruktur aufzubauen.

Arbeite am besten mit einer Entwicklungsumgebung, die dir bei der Projektverwaltung hilft. Für Python wäre PyCharm eine gute Wahl. Alternativen sind unter anderem Eclipse (mit PyDev), Visual Studio (mit den Python Development Tools) oder du richtest dir eine Entwicklungsumgebung mit Visual Studio Code ein.

Außerdem kann ein Dateiversionierungssystem (wie Git oder Mercurial) hilfreich sein. Mit dem kannst du in selbst gewählten zeitlichen Abständen Änderungen an deinem Projekt sichern und dann bei Bedarf wieder zurückdrehen.