Übung »Refactoring der "Bauzeichner 2.0"-Software aus dem Video nach SOLID und Clean Code«
Das im Video zu den SOLID-Prinzipien vorgestellte Beispiel der “Bauzeichner 2.0”-Software wird in dieser Übung einmal gründlich gefactored - gemäß der Prinzipien von SOLID und Clean Code.
- Dauer
- Ca. 300 min
- Video(s) hierzu
-
Worum geht es?
Alle nachfolgenden Schritte beziehen sich auf das Beispiel-Repo
Bauzeichner2.0-CleanCode-SOLID. Das Repo ist
so aufgebaut, dass es zwei Java-Projekte enthält.
before_refactoring
ist die Version, die DDD- und SOLID-Prinzipien verletzt. Alle entsprechenden Tests
sind rot (bzw. gelb, in IntelliJ). Funktional ist die Implementierung ok (wenn auch unvollständig und
sehr lieblos runtergehauen …), was man daran sieht, dass die funktionalen Unit-Tests im
Package functionaltests
grün sind.
after_refactoring
enthält die Variante nach dem Refactoring.
Hinweis: Wegen der zwei Projekte sollten Sie also nicht den Top-Level-Ordner bauzeichner2.0-cleancode-solid
in IntelliJ öffnen, sondern die beiden unterliegenden Ordner before_refactoring
und after_refactoring
in
zwei verschiedenen IntelliJ-Instanzen.
Schritt 1: Clean-Code-Prinzipien anwenden
Schauen Sie sich das Video an, und finden Sie Verstöße gegen die Clean-Code-Prinzipien.
Das PMD-Plugin für IntelliJ kann Ihnen dabei helfen.
- Gehen Sie die Refactoring-Schritte durch.
- Ich werde das ebenfalls im Live-Coding machen.
- Anschließend schauen Sie Ihren eigenen Code aus Meilenstein M0 an. Welche Clean-Code-Prinzipien verletzen Sie dort?
Schritt 2: Package-Struktur und Namenskonventionen entsprechend DDD-Schichtenarchitektur
Machen Sie gemäß unserer Konventionen für die DDD-Schichtenarchitektur
ein Refactoring des Übungs-Repos, so dass die DDD-Konventionen eingehalten werden. Denken Sie auch an die Namenskonventionen.
Schritt 3a: SOLID-Prinzipien anwenden - Single Responsibility Principle
Finden Sie den hauptsächlichen Verstoß gegen das Single Responsibility Principle (SRP) im Code. Beheben Sie ihn.
Schritt 3b: SOLID-Prinzipien anwenden - Open-Closed Principle
Finden Sie den hauptsächlichen Verstoß gegen das Open-Closed Principle (OCP) im Code. Beheben Sie ihn.
Schritt 3c: SOLID-Prinzipien anwenden - Dependency Inversion Principle
Finden Sie den hauptsächlichen Verstoß gegen das Dependency Inversion Principle (DIP) im Code. Beheben Sie ihn.