Du interessierst dich für KI? 🔎 Entdecke unsere KI-Trainings.

Legacy-Modernisierung mit DDD und Spring Boot

3 Tage

Termine und Buchung

In diesem Training lernst du, wie du DDD-Konzepte systematisch in Spring-Boot-Anwendungen umsetzt. Du erfährst, wie du mit Event Storming Bounded Contexts identifizierst, diese mit Spring Modulith als Module strukturierst und mit ArchUnit sowie jMolecules architektonisch absicherst. Dabei arbeiten wir durchgehend an einer realistischen Hotel-Legacy-Codebase, die typische Probleme gewachsener Monolithen aufweist – so kannst du das Gelernte direkt auf deine eigenen Projekte übertragen.

Warum Domain-driven Design mit Spring Boot?

Viele Spring-Boot-Anwendungen starten gut strukturiert – doch mit wachsender Komplexität verschwimmen die Grenzen zwischen fachlichen Bereichen. Was als übersichtlicher Monolith begann, wird zum „Big Ball of Mud“: Services rufen sich gegenseitig auf, Entitäten wuchern über Modulgrenzen hinweg, und niemand traut sich mehr, größere Änderungen vorzunehmen. Domain-driven Design (DDD) bietet bewährte Strategien, um dieser Erosion entgegenzuwirken. Es hilft, fachliche Grenzen zu erkennen, eine gemeinsame Sprache mit dem Business zu etablieren und die Softwarearchitektur konsequent an der Domäne auszurichten.

Wie der „DORA State of AI-based Software Development“ Report zeigt, verstärkt der Einsatz von Coding Agents sowohl die guten als auch die schlechten Eigenschaften bestehender Codebasen. Das heißt, zu gutem, sauber modelliertem Code kann die KI qualitativ guten Code hinzufügen, basierend auf qualitativ schlechten Ausgangsbasis wird die Qualität beim Einsatz dieser Tools weiter abnehmen. Daher bleiben Domain-Driven Design und Clean Code auch in Zukunft höchst relevante Skills.

Agenda

DDD Fundamentals

  • Strategic Design
    • Collaborative Modelling: Event Storming
    • Bounded Contexts
    • Context Mapping
    • Ubiquitous Language
  • Tactical Design
    • Entities, Value Objects, Aggregates
    • Repositories & Domain Services
    • Domain Events

Modern Spring Architecture

  • Modulare Monolithen
    • Application Modules mit Spring Modulith
    • Module Testing & Dokumentation
  • Reichhaltiges fachliches Domänenmodell
    • Taktisches Design im Code mit jMolecules
    • Testen der taktischen Struktur
    • Clean Code
  • Architekturstile
    • Layered/Hexagonal/Onion Architecture
    • Verwendung vordefinierter ArchUnit-Architekturregeln

Migration & Evolution

  • DDD in bestehenden Systemen einführen
    • Bounded Contexts im Legacy-Code identifizieren
    • Strangler Fig Pattern & inkrementelle Modernisierung
  • Ausblick: Vom Modulith zum Microservice

Optional

  • Clean Architecture
  • Event-basierte Kommunikation
  • CQRS & Event Sourcing

Dein Nutzen

Du verstehst Strategic und Tactical Design und kannst mit Event Storming fachliche Grenzen identifizieren – das Werkzeugset, das du sofort in deinem Projekt einsetzen kannst.

Du weißt, wie Spring Modulith, ArchUnit und jMolecules DDD-Konzepte technisch unterstützen und durchsetzbar machen – executable architecture statt Theorie.

Du lernst, wie du DDD inkrementell in bestehende Systeme einführst – ohne Big Bang Rewrite, mit bewährten Strategien wie Strangler Fig.

Durch die Arbeit an einer realistischen Legacy-Codebase übst du genau die Situationen, die dir im Arbeitsalltag begegnen.

Zielgruppe

  • Erfahrene Spring-Boot-Entwickler:innen, die ihre Anwendungen besser strukturieren und langfristig wartbar halten möchten.
  • Software-Architekt:innen, die DDD-Konzepte verstehen und in ihren Teams etablieren wollen.
  • Tech Leads und Senior Developer, die vor der Herausforderung stehen, gewachsene Monolithen zu modernisieren, ohne alles neu zu schreiben.

Voraussetzungen

  • Solide Kenntnisse in Java und Spring Boot (Controller, Services, Repositories, Dependency Injection)
  • Grundlegendes Verständnis von Softwarearchitektur
  • Eigener Laptop mit IDE und Java 17+

Lernziele

Event Storming durchführen und die Ergebnisse in Bounded Contexts übersetzen.

Tactical Patterns implementieren (Entities, Value Objects, Aggregates) und verstehen, wie sie sich von typischen Spring-Patterns unterscheiden.

Spring Modulith einsetzen, um Module zu definieren, zu testen und über Events kommunizieren zu lassen.

Architekturregeln absichern mit ArchUnit und jMolecules.

DDD in bestehende Systeme einführen – inkrementell und ohne Big Bang Rewrite.

Deine Trainer:innen

socreatory Trainer:in Martin Günther

Martin Günther

Domain-driven Design, kollaborative Modellierung, moderne Softwarearchitektur

  • Legacy-Modernisierung mit DDD und Spring Boot

Martin Günther ist selbständiger Softwarearchitekt und technischer Coach mit Schwerpunkt auf Domain-Driven Design (DDD), kollaborativer Modellierung und moderner Softwarearchitektur. Er unterstützt Unternehmen dabei, komplexe Domänen zu verstehen, tragfähige Architekturen zu entwickeln und interdisziplinäre Teams wirkungsvoll zusammenzubringen. Mit tiefem technischem Verständnis und aktiver Entwicklungspraxis behält er dabei sowohl das große Ganze als auch die Implementierungsdetails im Blick. Mit Leidenschaft für strukturierte Zusammenarbeit moderiert er Workshops und nutzt Methoden wie Event Storming oder Liberating Structures, um Teams zu kreativen Ideen und praxistauglichen Lösungen zu führen. Martin Günther teilt sein Wissen regelmäßig auf nationalen und internationalen Konferenzen in Form von Vorträgen und interaktiven Sessions.

socreatory Trainer:in Nicole Rauch

Nicole Rauch

Domain-driven Design, React/Redux, Clean Code, Funktionale Programmierung

  • Legacy-Modernisierung mit DDD und Spring Boot

Nicole Rauch ist freiberufliche Softwareentwicklerin und Softwareentwicklungscoach mit umfangreichem Hintergrund in Compilerbau und formalen Verifikationsmethoden. Neben Specification by Example, Domain-Driven Design, React/Redux und Clean Code/Software Craftsmanship gehört auch funktionale Programmierung zu ihrem Repertoire. Des weiteren ist sie Fachbeiratsmitglied bzw. Mitorganisatorin mehrerer Konferenzen sowie einer Fachzeitschrift und Mitbegründerin der Softwerkskammer, einer deutschsprachigen User Community zum Thema Software Craftsmanship.

Inhouse Training

Du kannst dieses Training auch als Inhouse-Training exklusiv für dein Team buchen. Bitte nutze dafür unser Anfrage-Formular.

Jetzt anfragen

Relevante weitere Trainings