Evolutionäre Architekturmuster mit Clean und Hexagonal Architecture - Matthias Eschhold - Deutsch - Termingarantie
Beschreibung
Dieses Training hilft dir, Probleme der Schichtenarchitektur zu erkennen und vermittelt anhand vieler Übungen einen Werkzeugkasten, mit dem du Clean und Hexagonal Architecture implementieren kannst. Nach dem Training kannst du deine Architektur kontinuierlich testen und das Mindset der Evolutionären Architektur anwenden.
Immer wieder stolpern wir bei der Erweiterung von Bestandssystemen über starre Architekturen, die sich nicht erweitern lassen oder gar über gewachsene Systeme, die keine zur Architektur passende Erweiterung mehr zulassen, da gar keine Architektur mehr erkennbar ist. In der Konsequenz kann sich auch das zugrunde liegende Geschäftsmodell nicht mehr weiterentwickeln. Doch wie können wir diesem Szenario vorbeugen? Wie können wir eine Architektur in unserem Softwaresystem einsetzen, die der Evolution des Systems standhält?
Sowohl die Clean als auch die Hexagonal Architecture versprechen eine klare Trennung der fachlichen Domäne von den infrastrukturellen Aspekten. Die Kernidee, das Ports und Adapters Pattern, ist mächtig und hilft, technische, fachliche sowie organisatorische Flexibilität in der Softwarearchitektur zu realisieren. Darauf aufbauend werden wir im Training die Clean und Hexagonal Architectures im Kontext der Evolutionary Architecture beleuchten und Umsetzungsmöglichkeiten von Fitness Functions für diese Architekturmuster darstellen.
Im Training „Evolutionäre Softwarearchitektur“ sprechen wir über Gemeinsamkeiten, Unterschiede, Nutzen, Tradeoffs sowie pragmatische Entwicklungsansätze für diese Architekturmuster. Anhand einer Demoanwendung in Java werden wir gemeinsam Codebeispiele analysieren und anhand eines fachlichen Beispiels selbst implementieren. Dabei verwenden wir die Bausteine des taktischen Domain-Driven Design und lernen, wie diese eingebettet in die Clean Architecture implementiert werden. Du erhältst Zugriff zur Demoanwendung mit Spring Boot und Java und hast die Möglichkeit, die Thematik hinterher im Selbststudium weiter zu vertiefen.
Agenda
Tag 1
Softwarearchitektur als Struktur und Methodik
- Funktionale Systemdekomposition und Modularisierung
- Architekturmuster, Architekturprinzipien, Entwurfsmuster und Mustersprache
- Time-To-Adaption und strukturelle Qualität von Softwarearchitektur
Ports & Adapters als Architekturmuster
- Die Schwächen der Schichtenarchitektur
- Von der Schichtenarchitektur zu Ports & Adapters Architekturmuster
Eine isolierte Domäne erstellen
- Implementierung von Geschäftsobjekten und Fachwerten nach dem Prinzip des Rich Domain Model
- Domänen-bezogene Datenvalidierung implementieren
- Unterschiedliche Aufgaben auf die Klassenstereotypen Service, Root Entity, Entity und Value Object verteilen
- Code-Übung: Domänenmodel
Hexagonal Architecture
- Implementierung von Geschäftsobjekten und Fachwerten nach dem Prinzip des Rich Domain Model
- Domänen-bezogene Datenvalidierung implementieren
- Unterschiedliche Aufgaben auf die Klassenstereotypen Service, Root Entity, Entity und Value Object verteilen
- Code-Übung: Domänenmodell
Clean Architecture
- Die Domäne in der Clean Architecture
- Der Use-Case-Ring der Clean Architecture
- Prinzipien des Use-Case-Schnitt
- Der Framework Ring der Clean Architecture
- Call-Flow durch die Clean Architecture
- Code-Übung: Use-Case-Ring und Framework-Ring
Tag 2
Mapping Strategien
- One-Way, Two-Way und Full Mapping Strategie
- Mappings mit Third-Party-Bibliotheken vereinfachen
- Mapper, Konverter und Factories
- Code-Übung: Two-Way-Mapping-Strategie
Domain-Driven Modularization
- Modularisierung mit Domänenmodulen anhand Root Entities
- Strukturierung von Domänenmodulen
- Entwurfsmuster für Beziehungen zwischen den Domänenmodulen
- Coding-Übung: Abhängigkeiten zwischen Domänenmodulen
Evolutionäre Architektur
- Motivation für Architektur-Disziplin anhand der Broken Window Theory
- Das Mindset der Evolutionären Architektur
- Fitness Functions für die Clean und Hexagonal Architecture
- Coding-Übung: Clean Architecture Fitness Functions mit ArchUnit
Deine Trainer:innen
Matthias Eschhold
Matthias Eschhold
Architektur, Domain-driven Design
- Evolutionäre Architekturmuster mit Clean und Hexagonal Architecture
Matthias ist Lead-Architekt der E-Mobilität bei der EnBW AG. Mit seiner Erfahrung in der Softwarearchitektur und Domain-Driven Design gestaltet er mit seinem Team die IT-Landschaft und Team-Topologie der E-Mobilität. Trotz der Schwerpunkte auf strategischer und sozio-technischer Architekturebene, fühlt sich Matthias nach wie vor mit Java und Spring Boot auf der Codeebene zuhause, implementiert Prototypen und führt Refactorings durch. Seit vielen Jahren teilt Matthias seine Leidenschaft für Architektur als Trainer. Seine Stärke liegt in praxisnahen Schulungen, die nicht nur Architekturmuster und -prinzipien vermitteln, sondern auch die Realitäten von Projekten berücksichtigen. Er sucht stets nach Wegen, um Softwarearchitektur alltagstauglich zu machen.