Warum ist das in realen Projekten wichtig ⏱️
Wartbarkeit - ist die Geschwindigkeit der Veränderung ohne Abstürze und Nerven. Je einfacher es ist, den Code zu lesen und zu testen, desto schneller sind die Releases und desto weniger Bugs gibt es. Diese 5 Fehler kommen am häufigsten vor - beginnen wir mit ihnen.
❌ Magische Zahlen und Zeichenfolgen
Die nicht offensichtlichen „3“, „0,15“ und „S“ lassen uns raten, was das bedeutet.
# vorher
if user_status == 3:
discount = 0.15
# wurde
VIP_USER = 3
LOYALTY_DISCOUNT = 0.15
if user_status == VIP_USER:
discount = LOYALTY_DISCOUNT💡 Verwenden Sie Konstanten, Enumerationen (Enum) und Konfigurationen — die Bedeutung wird klar.
❌ Kilometerfunktionen
Die 150-Zeilen-Funktion erledigt alles auf einmal: Sie analysiert die Eingabe, validiert sie, schreibt in die Datenbank, erstellt einen Bericht.
# in Schritte unterteilen
def parse_request(req): ...
def validate(data): ...
def save(data, db): ...
def build_report(data): ...
def handle(req):
data = parse_request(req)
validate(data)
save(data, db="main")
return build_report(data)Kleine Funktionen sind einfacher zu testen, wiederzuverwenden und zu lesen.
❌ Code-Duplizierung
Copy & Paste führt zu einer Diskrepanz in der Logik: An einer Stelle wurde es korrigiert, an einer anderen vergessen.
# war (zwei ähnliche Steuerberechnungsblöcke)
def calc_tax_order(total): return total * 0.07
def calc_tax_invoice(total): return total * 0.07
# wurde
def calc_tax(amount, rate=0.07):
return amount * rate🔁 Verschieben Sie sich wiederholende Elemente in eine Funktion, Klasse oder ein Modul; verwenden Sie Makros/Partials in Vorlagen.
❌ Schlechte Namen
Die Namen f, x, processData ohne Kontext sind schwer zu verstehen.
# vorher
def f(x): return x*7/100
# wurde
def calculate_tax(price: float, tax_rate: float = 0.07) -> float:
return price * tax_rateGeben Sie Namen nach Fachgebiet an: Was genau das Wesen denkt/tut.
❌ Keine Kommentare und Dokumentation
Der Code erklärt das „Wie“, aber oft braucht man eine Antwort auf das „Warum“. Komplexe Entscheidungen und Annahmen ohne Kommentare sind eine Falle.
def allocate_slots(users):
"""
Distributes slots to users.
The algorithm is greedy: first VIP, then PRO, then FREE.
This is critical for SLA partners.
"""
...📚 Unterstützen Sie README, Docstrings und kurze Kommentare zu nicht trivialen Stellen.

📊 Zusammenfassung: Fehler und wie man sie behandelt
Fehler | Was ist gefährlich | Korrektur |
|---|---|---|
Magische Zahlen/Zeilen | Verlust des Sinns, Risiken falscher Änderungen | Konstanten, Enumeration, Konfigurationen |
Lange Funktionen | Schlecht getestet, schwer zu lesen | Aufschlüsselung in kurze Schritte |
Duplizieren | Logische Inkonsistenzen, Fehler bei Änderungen | Auslagerung in Funktionen/Module |
Schlechte Namen | Lese-/Onboarding-Geschwindigkeit verringern | Namen nach Domain-Logik |
Keine Dokumentation | Terminüberschreitung, Abhängigkeit von „Wissensträgern“ | Docstrings, README, kurze Kommentare |
Mini-Checkliste vor PR ✅
Gibt es „Magie“ — Zahlen/Zeilen ohne Bedeutung?
Funktionen sind kürzer als ~30-40 Zeilen und machen eine Sache?
Copy-Paste entfernt? Wiederholungen in das allgemeine Modul.
Sind die Namen auf Anhieb lesbar? (Methoden, Variablen, Dateien)
Gibt es Docstrings/README für den Einstieg von Anfängern?
Decken die Tests die Kernlogik ab?
Wo man mit guten Praktiken üben kann 💡
In Kodike Wir machen das Programmierenlernen spannend und verständlich: Wir haben interessante Kurse mit Aufgaben, die helfen, die Fähigkeiten Schritt für Schritt zu verbessern.
Und wir haben auch einen aktiven Telegram-Kanal, wo wir coole Ideen diskutieren, Erfahrungen teilen und Aufgaben gemeinsam analysieren — Lernen wird nicht nur nützlich, sondern auch unterhaltsam.
Welcher der fünf Fehler kommt in Ihren Projekten am häufigsten vor?
