Clean Code Richtlinien - notrautmann/TINF23CS1 GitHub Wiki

1. KISS - Keep It Stupid And Simple

  • Stets die einfachste Lösung für ein Problem suchen oder nutzen

2. DRY - Don't Repeat Yourself

  • Wiederholung von Software-Mustern reduzieren
  • Ersetzung durch Abstraktion

3. SRP – Single Responsibility Principle

  • Jede Funktion, Klasse und jedes Modul soll genau eine Aufgabe haben.
  • Trenne z. B. Datenverarbeitung, Datenbankzugriff und UI voneinander.

4. Meaningful Names – Sag, was du meinst

  • Namenskonvention einhalten: Verb + Bezeichner calculate_bill()
  • Keine kryptischen Abkürzungen im Code.
  • Verwenden von Englisch im Code
  • Nutze Snake-Case für Variablen/Funktionen/Dateien/Ordner (order_id, print_bill(), connection.py).
  • Nutze Pascal-Case für Klassen (DbConnection)
  • Nutze Screaming Case für Konstanten (STATUS_COMPLETE)

5. Short and Focused – Funktionen klein halten

  • Eine Funktion sollte möglichst maximal 20 Zeilen lang sein.
  • Eine Funktion = eine Aufgabe = ein Abstraktionsniveau.

6. Fail Fast – Fehler früh und klar behandeln

  • Verwende try/except, wo Fehler auftreten können, aber keine leeren Blöcke:

    try:
        order.save()
    except Database as e:
        logger.error(f"Error during saving: {e}")
    
  • Validierungen so früh wie möglich durchführen (if not, assert).

  • Vermeide except: pass.

7. No Magic – Keine magischen Zahlen oder Strings

  • Verwende Konstanten:

    STATUS_COMPLETE = 3
    if order.status == STATUS_COMPLETE:
        ...
    
  • Gruppiere Konstanten z.B. in einer constants.py Datei.

8. Clean Structure – Projekt sauber strukturieren

  • Logische Modulstruktur (z.B. produkte/, kunden/, bestellungen/).
  • Trenne UI, Logik, Datenbankzugriff.

9. Test Everything – Tests sind Teil des Codes

10. Kommentiere sinvoll

11. Verwende Pylinth - Statische Codeanalyse

  • Verwende Pylith zur statischen Codeanalyse