Flexible Softwarearchitektur: Clean- und Hexagonal-Architektur verstehen und anwenden
Online-Workshop am 08.12.2022, ca. 9–16 Uhr
Flexible Geschäftsmodelle benötigen flexible Softwarearchitekturen. Setzt die Softwarearchitektur die Bedürfnisse der fachlichen Domäne optimal um, dann können entscheidende Wettbewerbsvorteile erzielt werden. Neben einer fachlichen Ausrichtung der Softwarearchitektur werden Architekturmuster benötigt, die "Design for Change" und weiterführend "Flexibility by Design" unterstützen.
Die Clean- und Hexagonal-Architektur versprechen eine Entkopplung der fachlichen Domäne von infrastrukturellen Aspekten. Dies ist die Basis für solch flexible Softwarearchitekturen. Die zu Grunde liegende Idee von Ports und Adapters ist mächtig und hilft, technische, fachliche sowie organisatorische Flexibilität in der Anwendungsarchitektur zu realisieren.
Im Workshop lernst du Flexibilitätsanforderungen aus der Praxis kennen und erhältst die Möglichkeit, Anforderungen aus ihrem Projektkontext mithilfe von Qualitätsszenarien zu beschreiben. Weiter folgt eine detaillierte Einführung in die Clean- und Hexagonal-Architektur. Gemeinsam wollen wir verstehen, wann der Einsatz dieser Architekturmuster zielführend ist und wie du diese auf der technischen Ebene realisierst.
Im Workshop werden wir Codebeispiele in Java analysieren und Vorteile, Nachteile sowie Kompromisse diskutieren. Mit Übungen wird das Verständnis für die technische Umsetzung vertieft. Du erhältst alle Trainingsmaterialien und Beispiele und hast die Möglichkeit, die Thematik hinterher im Selbststudium zu vertiefen.
Vorkenntnisse
Teilnehmende sollten die im Nachfolgenden genannten Kenntnisse und/oder Erfahrung mitbringen. Insbesondere bilden substanzielle praktische Erfahrungen aus der Softwareentwicklung im Team eine wichtige Voraussetzung zum Verständnis des vermittelten Lernstoffes und für ein erfolgreiches Training:
- Mehr als 18 Monate praktische Erfahrung in arbeitsteiliger Softwareentwicklung (d. h. in Teams), erworben durch Programmierung unterschiedlicher Systeme außerhalb der Ausbildung.
- Kenntnisse und praktische Erfahrung in mindestens einer höheren Programmiersprache (z.B. Java, Kotlin oder C#) und der Konzepte Modularisierung (Pakete, Namensräume) sowie Dependency Injection.
- Empfehlenswert sind einschlägige Erfahrungen in der Modellierung von fachlichen Anforderungen und Datenstrukturen z.B. mit UML (Klassen-, Paket-, Komponenten- und Sequenzdiagramme) sowie in der Konzeption der Architektur von mittleren und großen IT-Systemen
Lernziele
- Die Probleme der Schichtenarchitektur erkennen und ihnen mittels Ports & Adapter 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
- Fortgeschrittene Entwurfsmuster zur Abbildung von Beziehungen zwischen fachlichen Bausteinen sowie für besonderen Flexibilitätsbedarf
- Die Möglichkeit, Ihre Architektur mittels Architekturtest kontinuierlich zu testen und das Mindset der Evolutionären Architektur anzuwenden