Domain-Driven Design – Grundlagen und Praxis
Fachliche Komplexität durch Modelle, klare Grenzen und gemeinsame Sprache beherrschbar machen
01 Intro
Domain-Driven Design setzt dort an, wo die eigentliche Schwierigkeit eines
Softwaresystems nicht in der Technologie, sondern in einer komplexen
Fachdomäne liegt. Softwaremodell und fachliches Verständnis werden dabei
gemeinsam entwickelt.
Der Kurs vermittelt strategisches und taktisches Domain-Driven Design und
verbindet beide Ebenen mit praktischer Softwareentwicklung. Im Mittelpunkt
stehen Ubiquitous Language, Bounded Contexts, Domänenmodelle und die
kontrollierte Integration unterschiedlicher fachlicher Modelle.
Kurs-ID
SWE-005
Dauer
3 Tage
Format
Präsenz · Live Online · Inhouse
Vorkenntnisse
Praktische Erfahrung mit Softwareentwicklung und objektorientiertem Design
02 Trainingsprogramm
Inhalte
Warum Domain-Driven Design?
- fachliche Komplexität
- Domain
- Subdomain
- Modell
- Wissen
- sinnvoller Einsatz
Ubiquitous Language
- gemeinsame Sprache
- Begriffe
- Mehrdeutigkeiten
- Sprache im Code
- Sprache in Tests
- Wissen sichtbar machen
Strategisches Design
- Core Domain
- Supporting Subdomain
- Generic Subdomain
- Priorisierung
- Make or Buy
- fachliche Grenzen
Bounded Contexts
- Modellgrenzen
- gleiche Begriffe, unterschiedliche Bedeutung
- Verantwortlichkeiten
- Datenhoheit
- organisatorische Grenzen
- Context Mapping
Beziehungen zwischen Contexts
- Partnership
- Shared Kernel
- Customer und Supplier
- Conformist
- Anti-Corruption Layer
- Published Language
Entities und Value Objects
- Identität
- Werte
- Lebenszyklus
- Immutability
- Invarianten
- Beispiele
Aggregates
- Konsistenzgrenzen
- Aggregate Root
- Invarianten
- Referenzen
- Transaktionen
- typische Fehlkonstruktionen
Services, Repositories und Factories
- Domain Services
- Application Services
- Repository
- Factory
- Verantwortlichkeiten
- Domänenmodell sauber halten
Domain Events
- fachlich relevante Ereignisse
- Modellierung
- Entkopplung
- Reaktionen
- Integration Events
- Event Storming einordnen
Domain-Driven Design und Architektur
- Layered Architecture
- Hexagonal Architecture
- Ports and Adapters
- CQRS einordnen
- Persistenz
- Domäne schützen
Externe Systeme integrieren
- fremde Modelle
- Anti-Corruption Layer
- Adapter
- Übersetzung
- APIs
- Modellhoheit
Modellierungs-Workshop
- Domäne untersuchen
- Sprache entwickeln
- Subdomains identifizieren
- Bounded Contexts schneiden
- Modell entwickeln
- Entscheidungen diskutieren
03 Durchführung
Rahmen und Organisation
Dauer
3 Tage
Durchführung
Präsenz oder Live Online, vorzugsweise als Inhouse-Schulung
Schwerpunkt
Inhouse-Schulungen für Unternehmen und Teams
Sprache
Deutsch, englische Fachbegriffe und Dokumentation
Unterlagen
Kursunterlagen, Beispiele und Übungsaufgaben
Technik
Eigener Rechner für die praktischen Übungen
Inhouse-Schulungen
Eine eigene Fachdomäne kann als Grundlage für den Modellierungs-Workshop
dienen.
04 Zielgruppe
Für wen ist der Kurs gedacht?
Softwareentwickler, Softwarearchitekten, technische Leads und Business
Analysts, die komplexe Fachdomänen in Software abbilden.
Voraussetzungen
Praktische Softwareentwicklung und Grundlagen objektorientierten Designs.
05 Lernziele
Was Sie nach dem Kurs können
Die Teilnehmer können fachliche Modelle entwickeln, Bounded Contexts
identifizieren, taktische Bausteine des Domain-Driven Design einsetzen und
unterschiedliche Domänenmodelle kontrolliert integrieren.
06 FAQ
Häufige Fragen
Ist Domain-Driven Design eine Softwarearchitektur?
Nein. Domain-Driven Design ist primär ein Ansatz zur Modellierung komplexer Fachdomänen. Bestimmte Architekturformen unterstützen seine Umsetzung.
Braucht jedes Projekt Domain-Driven Design?
Nein. Bei geringer fachlicher Komplexität kann es unnötigen Aufwand verursachen.
Werden Microservices benötigt?
Nein. Bounded Contexts können beispielsweise auch innerhalb eines modularen Monolithen umgesetzt werden.