Zusammenfassung
Was ist Domain-Driven Design (DDD)?
Domain-Driven Design ist ein Ansatz zur Softwareentwicklung, der den Fokus auf die Fachlichkeit (Domäne) der Anwendung legt. Es ist eine Technik mit der Sie die Implementierung und die Teamaufteilung an der zugrundeliegenden Domäne ausrichten.
Dieser Domain-Driven Design Kurs vermittelt Ihnen alle Grundlagen von DDD. Sie lernen, wie man die Zusammenarbeit zwischen Stakeholdern aus dem Geschäfts- und Softwareentwicklungsbereich fördert, um sicherzustellen, dass die Software den Bedürfnissen des Unternehmens entspricht.
Schaffen Sie ein gemeinsames Verständnis der Domäne durch verschiedene Modellierungstechniken, vom Business Model Canvas auf der strategischen Unternehmensebene über EventStorming und Context-Mapping zur Erforschung und Abbildung der Fachlichkeit bis hin zu domänenspezifischen Sprachen in taktischen und architektonischen Mustern.
Lernen Sie, ein skalierbares und entkoppeltes System zu bauen, das für korrektes Domänenverhalten optimiert ist, ohne die Performance zu beeinträchtigen. Das Geheimnis einer erfolgreichen Implementierung liegt in der richtigen Trennung von Modellen und einem Fokus auf die Fachsprache.
Lassen Sie sich von Marco Heimeshoff in diesem dreitägigen DDD training zeigen, wie Sie semantische Modelle mit einem starken Alignment zwischen Fachlichkeit und Code herstellen und pflegen.
Zielgruppe
Dieser DDD Workshop richtet sich an alle Architekten und erfahrenen Entwickler, die ein starkes Interesse an Domain-Driven Design und modernen, Nachrichtengetriebenen Architekturen haben.
Sie sollten grundlegende Erfahrung mit Softwareentwicklung haben, Erfahrungen in spezifischen Softwarearchitekturen und Programmierparadigmen sind wünschenswert, aber nicht zwingend erforderlich.
Agenda
Die ersten anderthalb Tage konzentrieren sich stark auf Geschäftsstrategie, explorative Modellierung und strategisches Design, während die letzten anderthalb Tage tief in die Implementierung von Domänenmodellen mit CQRS und Event Sourcing eintauchen.
Wir passen die Agenda stets dynamisch an das Niveau und die Erwartungen der Teilnehmer an.
Tag 1
- Domain-Driven Design Überblick: Wesentliche Ideen und Terminologie
- Geschäftsmodell und Bedürfnisse der Stakeholder verstehen
- Verschiedene Methoden zur kollaborativen Exploration erkunden
- Warum, wie und wann wenden wir Domain-Driven Design an
- Systemische Einflüsse auf Ihre Lösung
- Einführung in verschiedene EventStorming-Varianten
- Synchronisierung mentaler Modelle im Problemraum
- Optionen zur Verbesserung des Lösungsraums erkunden
- Heuristiken, um Wert aus einem EventStorming-Modell zu generieren
Tag 2
- Optimierung der Strategie durch Subdomain-Mapping
- Kontext-Mapping: Architektur an die Organisationsstruktur anpassen
- Heuristiken zur Gestaltung und Entkopplung von Boundaries entdecken
- Cynefin: Verschiedene Komplexitätsgrade im strategischen Design
- Hexagonale Architektur: Ports und Adapter in Aktion
- Taktische DDD-Muster: Übungen zur Implementierung von Domänenmodellen
Tag 3
- Ereignisse: Atomare Bausteine Ihrer Domäne
- Projektionen: Polystrukturierte Informationen in verschiedene Lese-Modelle
- Implementierung mittels Behaviour-Driven Development
- CQRS Überblick: Wesentliche Ideen und Terminologie
- Umgang mit Skalierbarkeit, Performance und Eventual Consistency
- Implementierung von Policies mit Sagas
- Strategien für langlebige, evolvierende und verteilte Systeme
- Nutzen, Risiken und sozio-technische Implikationen von CQRS und Event Sourcing
Lernziele
- Domain-Driven Design (DDD) verstehen und wissen, wann es angewendet wird
- Die Domäne modellieren und aus mehreren Lösungen die beste auswählen
- Design mit den Geschäftsbedürfnissen durch CQRS und DDD abstimmen
- Semantische, skalierbare und entkoppelte Anwendungen mit Event Sourcing bauen.
Erwartungen – Wie es ablaufen wird
Wir treffen uns in einem Workshopraum und nutzen kollaborative Modellierung auf Papierrollen sowie Paarweise- und Mob-Programmierung. Jede Lektion beginnt mit einer theoretischen Verbindung zum Thema und führt zu einer kollaborativen Übung, gefolgt von einer Reflexion zur Vertiefung.
Diskussionen und Fragen sind jederzeit willkommen.
Warum sollten Sie ein Ticket kaufen?
Alles Gelernte helfen Ihnen dabei, Ihre Energie voll auf fachliche Wertschöpfung zu konzentrieren. Optimieren Sie Ihre Entwicklung auf Geschäftswertschöpfung, indem Sie Ihr Team nach deren Expertise gezielt einsetzen und Routinearbeiten auslagern.
Basierend auf den Konzepten von Domain-Driven Design werden wir Code mit Command Query Responsibility Segregation schreiben und werden mittels Event Sourcing eine Geschichte in fachlicher Sprache erzählen, die gleichermaßen von Menschen und Compilern verstanden wird.
Halten Sie das Design Ihres Softwaresystems an die Bedürfnisse Ihrer Organisation angepasst, verbessern Sie die Lesbarkeit und stärken Sie die Kommunikation mit wichtigen Stakeholdern.