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.

UC IT Service · Ulrich Cuber · kontakt@uc-it.de

https://www.uc-it.de/coaching/domain-driven-design/