Flexible Anwendungsarchitektur mit der Clean und der Hexagonal Architecture
Online-Workshop am 23. September 2024, ca. 9:30 bis 16 Uhr
Neu ist immer besser! Zugegeben, nicht jeder ist dieser Meinung. In meiner Ansicht baut Neues oft auf Altem auf. Durch die Aufnahme neuer Ideen sowie durch die Beseitigung identifizierter Schwächen stellt Neues oft eine Verbesserung dar. Setzen wir dies in den Kontext von Architekturmustern, ist eine Entwicklung der Schichtenarchitektur als De-facto-Standard zu Ports-&-Adapters- basierenden Architekturmustern, wie z.B. der Clean oder der Hexagonal Architecture, als neuen De-facto-Standard wahrzunehmen.
Geht es allerdings darum, diese Architekturmuster im eigenen Projektkontext anzuwenden, ist der Wissensaufbau zeitgleich mit der Entwicklung von neuen Features eine hohe Hürde. Clean und Hexagonal Architecture stehen für Qualität und enthalten mehr Designregeln und -prinzipen als die Schichtenarchitektur. Dennoch kann schnell ein Verständnis für diese fortgeschrittene Architekturmuster aufgebaut und im Entwicklungsalltag angewendet werden.
Im Workshop „Flexible Anwendungsarchitektur“ beschreibe ich die grundlegenden Konzepte des Clean Architecture Pattern anhand konkreter Anwendungsfälle. Die Theorie wird mit Code-Beispielen und Übungen in Java vertieft. Im Fokus des Architekturentwurfs steht die Wartbarkeit und die Erweiterbarkeit der Softwarearchitektur. Darauf aufbauend werden die Philosophie der Evolutionären Architektur diskutiert und technische Lösungsstrategie erläutert. Ich möchte aufzeigen, dass die Lernkurve genommen werden kann und die Teilnehmer zur weiteren Vertiefung im Selbststudium befähigen. Hierfür erhältst Du alle Trainingsmaterialien und Zugang zu einer Demo-Anwendung.
Vorkenntnisse
Teilnehmer:innen sollten die folgenden Kenntnisse und Erfahrung mitbringen:
- Mehr als 12 Monate praktische Erfahrung in arbeitsteiliger Softwareentwicklung im Team
- Kenntnisse und praktische Erfahrung in mindestens einer höheren Programmiersprache (bevorzugt Java, Kotlin, C#, Python)
- Vertraut mit Schichtenarchitektur, SOLID Prinzipien, Entwurfsmustern, Dependency Injection sowie Konzepte der Modularisierung (Module, Pakete, Namensräume)
- Vertraut mit der Erstellung fachlicher Objektmodelle in Java oder in einer vergleichbaren Programmiersprache
Lernziele
- Die Probleme der Schichtenarchitektur erkennen und ihnen mittels Ports & Adapters sowie fachlicher Modularisierung begegnen können
- Die Clean und Hexagonal Architecture implementieren sowie diese Architekturmuster unterscheiden können
- Unterschiedliche Modularisierungsvarianten und Mappingsstrategien für die Clean und Hexagonal Architecture anwenden können
- Die Möglichkeit, Architektur mittels Architekturtest kontinuierlich zu testen und das Mindset der Evolutionären Architektur anzuwenden
- Der praktische Teil in Java wird unterstützt durch eine Demo-Anwendung inklusive Programmierübungen.