Evolutionäre Softwarearchitektur

Matthias Eschhold

Kurzinformationen

Auf Anfrage
Auf Anfrage

Detailinformationen

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.

Seminarinhalt:

  • 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
  • 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

Eschhold, Matthias

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.

Seminarziel

  • 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 Mappingstrategien für die Clean und Hexagonal Architecture anwenden können
  • Entwurfsmuster zur Abbildung von Beziehungen zwischen fachlichen Bausteinen gezielt einsetzen können
  • Die Möglichkeit, deine Architektur mittels Architekturtest kontinuierlich zu testen und das Mindset der Evolutionären Architektur anzuwenden

Zielgruppe

  • Mehr als 12 Monate praktische Erfahrung in der Softwareentwicklung im Team von mittleren bis großen Softwaresystemen
  • Kenntnisse und praktische Erfahrung in mindestens einer höheren Programmiersprache (für die Kursbeispiele wird die Sprache Java verwendet)
  • Vertraut mit Schichtenarchitektur, SOLID-Prinzipien, Entwurfsmuster, Dependency Injection sowie Konzepte der Modularisierung (Module, Pakete, Namensräume)
  • Vertraut mit der Erstellung fachlicher Objektmodelle in Java oder in einer vergleichbaren Programmiersprache

Sprachen

Seminar: Deutsch

Unterlagen: Deutsch

Informationen

Informationen

Unsere Leistungen - Sie erhalten:

  • digitale Schulungsunterlagen
  • Ihre persönliche Teilnahmebescheinigung

Teilnahmegebühr

€ 1.500,- zzgl. MwSt.

Inhouse-Seminare

Dieses Seminar ist auch als Inhouse-Schulung durchführbar. Schon ab einer Teilnehmerzahl von 5 Mitarbeitern kalkulieren wir Ihnen gerne ein kostengünstiges Inhouse-Trainings-Angebot.

NRW-Bildungsscheck

SIGS-DATACOM ist zugelassener Bildungspartner des Landes NRW. Ihren NRW-Bildungsscheck für unsere Seminare einzulösen ist möglich! Weitere Informationen erhalten Sie unter:NRW Bildungsscheck!!

Disclaimer

Wir sind für die eigenen Inhalte, die wir zur Nutzung bereithalten, nach den allgemeinen Gesetzen verantwortlich. Von diesen eigenen Inhalten sind Querverweise (externe Links) auf die von anderen Anbietern bereit gehaltenen Inhalte zu unterscheiden. Diese fremden Inhalte stammen nicht von uns und spiegeln auch nicht unsere Meinung wider, sondern dienen lediglich der Information. Wir machen uns diese Inhalte nicht zu eigen und übernehmen trotz sorgfältiger inhaltlicher Kontrolle keine Haftung für die Inhalte externer Links. Für den Inhalt der verlinkten Seite sind ausschließlich deren Betreiber verantwortlich.