Kursüberblick
Domain-Driven Design ist ein Ansatz zur Softwareentwicklung, der der Komplexität von Softwareprojekten begegnet, indem er das Hauptaugenmerk auf das Kerngeschäft der Organisation und dessen Logik legt. Die Teilnehmenden lernen die grundlegenden Konzepte und Bausteine von DDD kennen, einschließlich Ubiquitous Language, Domains, Subdomains, Bounded Contexts und Context Maps.
Das Training vermittelt, wie man komplexe Geschäftsdomänen effektiv modelliert und Geschäftsprozesse in Software abbildet. Beim strategischen Design lernen wir, eine Systemlandschaft in Bounded Contexts aufzuteilen und eine effektive Kommunikation und Integration zwischen diesen Kontexten zu entwickeln.
Lernziele
Wir befassen uns mit taktischen Mustern wie Aggregates, Entities, Value Objects, Repositories und Services. Diese nutzen wir, um eine saubere, modulare und wartbare Codebasis zu erstellen. Nach diesem Training sind Sie in der Lage, DDD-Prinzipien in Ihren eigenen Projekten anzuwenden und domänengetriebene Praktiken in Ihrer Organisation zu etablieren.
Zielgruppe
Alle, die an Konzeption, Entwicklung und Management von Softwareprodukten beteiligt sind: Softwareentwickler, Architekten, Unternehmensarchitekten, Projekt- und IT-Manager, Business Analysten und Produktmanager.
Voraussetzungen
- Kenntnisse auf CPSA-Foundation-Niveau (das CPSA-F-Zertifikat selbst ist nicht erforderlich)
- Kenntnisse agiler Methoden (Scrum, Kanban, XP) sind von Vorteil
- Grundlagen der objektorientierten Softwareentwicklung
- Erfahrung in der Zusammenarbeit von Fachbereich und Softwareentwicklung
Detaillierter Lehrplan
A. Grundprinzipien & Philosophie
- Cognitive Team (over) Load & DDD
- Die zentrale Bedeutung der Fachdomäne im DDD
- Andere relevante Konzepte für DDD
- Komplexität in Softwaresystemen verstehen
- Die Rolle der Ubiquitous Language
B. Strategisches Design
- Der Fokus beim Strategischen Design
- Collaborative Modelling: Fachwissen sammeln und strukturieren
- Bounded Contexts und die Geschäftsdomäne
- Context Mapping: Integrationsstrategien für Bounded Contexts
- Subdomains und ihre Klassifizierung
- Kommunikationsmuster zwischen Kontexten
C. Taktisches Design
- Der Fokus beim Taktischen Design
- Die Bausteintypen des taktischen Designs
- Aggregates und Aggregate Roots
- Entities und Value Objects
- Domain Events und Event Sourcing
- Repositories und Services
- Architekturstile im Kontext von DDD
D. Praktische Anwendung
- Das Optimieren von Refactorings mit DDD
- DDD in der eigenen Organisation etablieren
- Geeignete Workshop-Setups & technische Hilfsmittel
- Event Storming und andere kollaborative Techniken
- DDD in bestehende Architekturen integrieren
Enthaltenes Unterrichtsmaterial
- Umfassender Foliensatz
- Buch: Vlad Khononov «Einführung in Domain-Driven Design»
- Vorbereitetes Miro Board
- Interaktive Kahoot-Quizze
- Übungsblätter mit Fallstudien