Andreas Hanke Geschäftsführer

„Das Wissen und die Erfahrung unserer Mitarbeiter sind das Fundament unseres Hauses“

Andy_wide

Alexandra Specht Key Account Managerin

„Seit 1995 sind wir auf dem Markt und jedes Jahr werden es mehr zufriedene Kunden, die unsere Dienstleistungen schätzen“

Nana_wide

Werner Eberling Principal Consultant

„Technologie-Hypes kommen und gehen, fundamentale Prinzipien der Software-Entwicklung halten Systeme stabil und zukunftssicher“

Slide3

Thomas Haug Principal Consultant

„Die Vermessung von Software und die Visualisierung der Ergebnisse hilft uns, strukturelle Probleme aufzudecken“

Thomas_wide

Domain-Driven-Design

Beschreibung

Das zentrale und kennzeichnende Merkmal einer jeden Software ist ihre Domäne, also ihre Fachlichkeit. Daher ist es essentiell für den Erfolg des Projektes, diese während des gesamten Entwicklungsprozesses in den Mittelpunkt zu stellen.

Domain-driven Design hat genau dies zum Ziel: Hier lernt das gesamte Team (einschließlich der Entwickler) von Anfang an gemeinsam alle relevanten Aspekte der Domäne (und damit der entstehenden Software) kennen. Eine gemeinsame Sprache von Fachbereich und Entwicklern bildet sich dabei fast schon von selbst heraus und wird stetig weiterentwickelt.

Das im Zuge des domänengetriebenen Designs enstandene Modell zeigt üblicherweise abgegrenzte Bereiche im entstehenden Softwaresystem auf, die für die Modularisierung des Codes genutzt werden können. Die Beziehungen zwischen diesen Modulen werden genauso betrachtet wie die Abläufe innerhalb eines Moduls. Zur Implementierung der Module bietet Domain-driven Design eine Reihe von taktischen Patterns an, die je nach Bedarf zum Einsatz kommen können.

Im Kurs werden wir diese Stufen gemeinsam anhand eines größeren Beispiels durchlaufen und nach und nach ein detailliertes Domänenmodell entwickeln. Auch mögliche Vorgehensweisen bei der Implementierung werden wir beleuchten - allerdings nur theoretisch, um den Rahmen des Kurses nicht zu sprengen.

Da nicht jedes Projekt auf der grünen Wiese beginnt, schauen wir uns zum Abschluss des Kurses noch an, wie wir mit bestehenden Codebasen umgehen können und welche Möglichkeiten es gibt, die Domäne aus existierendem (Legacy-)Code herauszuarbeiten und sichtbar zu machen.

Inhalt:

  • Einführung
  • Event Storming - Was passiert eigentlich genau in meiner Domäne?
  • Strategic Design - Wie kann ich die Domäne gut strukturieren?
  • Context Mapping - Was passiert zwischen den einzelnen Teilen?
  • Tactical Design - Wie kann ich die Domäne sinnvoll implementieren?
  • DDD im Legacy Umfeld