Clean Code und SOLID-Prinzipien
Dieser Beitrag ist eine Begriffserklärung zu Clean Code & SOLID – inklusive Prüfungsfragen, Kernelementen und Tags.
In a Nutshell
Clean Code steht für lesbaren, wartbaren, fehlerarmen Code. SOLID sind fünf zentrale Leitlinien für objektorientiertes Design.
Kompakte Fachbeschreibung
Clean Code fokussiert u.a. Namensgebung, Struktur, Wiederverwendbarkeit und kleine, verständliche Funktionen.
SOLID:
- S (SRP): Eine Klasse hat genau eine Verantwortlichkeit.
- O (OCP): Offen für Erweiterung, geschlossen für Änderung.
- L (LSP): Subtypen müssen Basistypen sauber ersetzen können.
- I (ISP): Viele kleine Interfaces statt weniger großer.
- D (DIP): Abhängigkeiten über Abstraktionen, nicht konkrete Klassen.
Prüfungsrelevante Stichpunkte
- Clean Code = lesbar, wartbar
- SRP: eine Klasse = eine Aufgabe
- OCP: erweiterbar ohne Änderung
- LSP: Subklassen korrekt substituierbar (IHK-relevant)
- ISP: Interfaces trennen (Praxis)
- DIP: Abhängigkeit über Interfaces
- Wirtschaftlichkeit: weniger Bugs, leichteres Onboarding
- Doku: Prinzipien in Architekturbeschreibung erwähnen
Kernkomponenten
- Sprechende Namen
- Kapselung/SRP
- Vererbung nach LSP
- Vermeidung von God Objects
- ISP-Interfaces
- Abstraktion/DIP
- Unit Tests
- Refactoring
- Diagramme zur Erklärung
- Codeanalyse-Tools (SonarQube)
Praxisbeispiel (SRP)
class ReportPrinter {
public void print(PDFReport report) {
// nur drucken, keine Report-Erstellung
}
}
Vorteile und Nachteile
Vorteile
- Verständlicher Code
- Bessere Testbarkeit
- Weniger Kopplung
- Strukturierte Architektur
Nachteile
- Höherer Initialaufwand
- Übertriebene Anwendung kann fragmentieren
Typische Prüfungsfragen (mit Kurzantwort)
- Was bedeutet Clean Code? Lesbarer, wartbarer Code.
- Welche SOLID-Prinzipien gibt es? SRP, OCP, LSP, ISP, DIP.
- Was ist ein God Object? Klasse mit zu vielen Verantwortlichkeiten.
- Warum ist DIP wichtig? Entkoppelt High-Level von Low-Level.
Freie Antwort
SOLID sind Leitlinien, keine starren Regeln. In Prüfungen zählt, ein Prinzip erklären und anhand eines Beispiels begründen zu können – ohne Overengineering.
Lernstrategie
- Kleine Clean-Code-Kapitel lesen.
- Eigenen Code refactoren (SRP/LSP).
- Pro Prinzip ein Beispiel formulieren.
- Zu große Klassen vermeiden.
Themenanalyse
- Kern: OOP, Designprinzipien
- Herausforderungen: Overengineering
- Sicherheit: weniger versteckte Zustände
- Doku: Architekturentscheidungen
- Wirtschaftlichkeit: geringere Bugrate