Prinzipien für sauberen Code

4 min 2 Abschnitte
Was du nach diesem Konzept kannst 4
  1. Du bist in der Lage, das DRY-Prinzip (Don't Repeat Yourself) zu veranschaulichen ,

    indem der Kontrast zwischen redundantem Code und modularisierten Abstraktionen aufgezeigt und die daraus resultierende Reduktion von Fehlerquellen erläutert wird.

  2. Du bist in der Lage, das KISS-Prinzip (Keep It Simple, Stupid) zu veranschaulichen ,

    indem Beispiele für unnötige Komplexität identifiziert und durch Darstellung einfacherer, direkter Lösungswege gegenübergestellt werden.

  3. Du bist in der Lage, das Konzept von Clean Code zu erklären ,

    indem die Bedeutung von lesbarem, verständlichem und wartbarem Code für die langfristige Produktivität und Qualität in Softwareprojekten dargelegt wird.

  4. Du bist in der Lage, den Einsatz von Kommentaren zu interpretieren ,

    indem analysiert wird, wann Kommentare notwendig sind (z.B. zur Erklärung von 'Warum'-Entscheidungen) und wann sie durch selbsterklärenden Code ersetzt werden sollten, um veraltete oder irreführende Kommentare zu vermeiden.

Was zeichnet "Clean Code" aus?

Das Konzept von Clean Code: Für Menschen geschrieben

Du hast bereits gelernt, wie du Programme schreibst, die syntaktisch korrekt sind. Clean Code (sauberer Code) geht einen entscheidenden Schritt weiter: Er ist nicht nur für den Computer ausführbar, sondern vor allem für Menschen verständlich. In der Praxis wird Code viel häufiger gelesen als geschrieben. Sauberer Code ist gut lesbar, leicht zu warten und einfach zu erweitern. Wenn du oder dein Team den Code nach Monaten wieder ansehen, solltet ihr die Logik sofort erfassen können. Das spart langfristig Zeit, reduziert Fehler (Bugs) und erleichtert neuen Teammitgliedern die Einarbeitung erheblich.

Das KISS-Prinzip: Komplexität vermeiden

Das KISS-Prinzip (Keep It Simple, Stupid) fordert dich auf, Lösungen so einfach und direkt wie möglich zu gestalten. Unnötige Komplexität ist der größte Feind der Wartbarkeit. Verzichte auf "clevere", stark verschachtelte Einzeiler, die schwer zu entschlüsseln sind.

Komplex und fehleranfällig (Bad Practice):

if (user.age > 60 or (user.status == 2 and user.points > 100)) and not user.blocked:
    give_discount()

Einfach und direkt (Clean Code): Lagere komplexe Bedingungen in sprechende Variablen aus. Der Code liest sich nun fast wie ein normaler Satz.

is_senior = user.age > 60
is_loyal_customer = user.status == 2 and user.points > 100
is_active = not user.blocked

if is_active and (is_senior or is_loyal_customer):
    give_discount()

Das DRY-Prinzip: Redundanzen auflösen

Das DRY-Prinzip (Don't Repeat Yourself) besagt, dass jede Logik in deinem System nur an einer einzigen Stelle existieren darf. Kopierst du Code-Blöcke (Copy & Paste), schaffst du Redundanz. Das Risiko: Ändert sich eine geschäftliche Vorgabe, musst du alle kopierten Stellen manuell anpassen. Vergisst du auch nur eine, entstehen sofort Bugs.

Nutze dein Wissen über Prozeduren und Funktionen, um wiederkehrende Logik zu kapseln (Modularisierung).

Redundant (Verstoß gegen DRY):

def calculate_total(price):
    tax = price * 0.19  # Steuerlogik hier
    return price + tax

def calculate_special_offer(price):
    discounted = price - 10
    tax = discounted * 0.19 # Steuerlogik wiederholt!
    return discounted + tax

Modularisiert (Clean Code):

def calculate_tax(amount):
    return amount * 0.19  # Zentrale, einzige Stelle für diese Logik

def calculate_total(price):
    return price + calculate_tax(price)
Prinzipien für sauberen Code — dec-software-engineering-software-architecture-programming-principles-clean-code-principles_page1.svg

Wann sind Kommentare wirklich sinnvoll?

Das "Warum" statt das "Was" kommentieren

Ein weit verbreiteter Irrtum ist, dass guter Code viele Kommentare benötigt. Nach den Clean-Code-Prinzipien sollte die Syntax selbst so ausdrucksstark sein, dass sie keine Erklärung benötigt, was sie tut. Nutze Kommentare ausschließlich, um zu erklären, warum eine bestimmte, vielleicht unkonventionelle Entscheidung getroffen wurde.

Überflüssiger Kommentar (Erklärt das "Was"):

# Erhöhe den Zähler um 1
counter += 1 

Sinnvoller Kommentar (Erklärt das "Warum"):

# Wir warten 2 Sekunden, da die externe API ein striktes Rate-Limiting hat
time.sleep(2)

Die Gefahr veralteter und irreführender Kommentare

Kommentare haben einen gravierenden technischen Nachteil: Sie werden vom Compiler oder Interpreter ignoriert. Wenn du die Logik deines Codes anpasst, aber vergisst, den dazugehörigen Kommentar zu aktualisieren, entsteht ein irreführender Kommentar. Dieser ist weitaus gefährlicher als gar kein Kommentar, da er andere Entwickelnde auf eine falsche Fährte lockt und das Vertrauen in die Codebasis zerstört.

Beispiel für einen irreführenden Kommentar:

# Prüft, ob die Person eine administrative Rolle besitzt
if user.role == "guest":
    return False

Selbsterklärender Code als Best Practice

Bevor du einen Kommentar schreibst, um einen unübersichtlichen Code-Abschnitt zu erklären, solltest du den Code selbst verbessern. Wie die Gegenüberstellung von veralteten Kommentaren und sauberem Code zeigt, ist es der effektivste Weg, fehleranfällige Textkommentare durch aussagekräftige Funktions- und Variablennamen zu ersetzen.

Anstatt einen komplexen Algorithmus in einem Textblock zu beschreiben, kapselst du ihn in eine Funktion, deren Name genau beschreibt, was passiert (z. B. filter_active_premium_users()). So wird der Code zu seiner eigenen, stets aktuellen Dokumentation.

Prinzipien für sauberen Code — dec-software-engineering-software-architecture-programming-principles-clean-code-principles_page2.svg

Teste dein Wissen

Du überprüfst den Code einer Kollegin. Das Programm läuft fehlerfrei, ist aber extrem schwer zu lesen. Warum ist das laut Clean-Code-Prinzipien problematisch?

Bereit für mehr?

Thema verstanden?

Teste dein Wissen interaktiv in unserer App. 7 Tage kostenlos, dann nur 5 € im Monat.