Diese Webseite verwendet Cookies, um die Nutzung der Webseite zu ermöglichen und zu verbessern.
Weitere Informationen finden Sie in unserer Datenschutzerklärung.     zum Impressum
       
Glossar-Buchstabe: D

Domain-Driven Design (DDD)

Domain-Driven Design (DDD) | Programmierung Berlin
Ein Ansatz für die Softwareentwicklung, der sich auf die Komplexität der Entwicklung fokussiert, indem er das Projekt um das Modell der Domäne herum aufbaut und dieses Modell im Mittelpunkt des Entwicklungsprozesses hält.
Programmierung

Haben Sie Interesse an individuell erstellten Software-Lösungen? Wir freuen uns auf Ihre Anfrage

Domain-Driven Design (DDD) ist eine methodische Herangehensweise in der Softwareentwicklung, die darauf abzielt, die Komplexität von Anwendungen zu managen, indem sie die zugrundeliegende Domäne – also den Fachbereich oder das Geschäftsfeld, für den die Software entwickelt wird – in den Mittelpunkt des Entwicklungsprozesses stellt. Diese Philosophie wurde von Eric Evans in seinem Buch "Domain-Driven Design: Tackling Complexity in the Heart of Software", das 2003 veröffentlicht wurde, eingeführt und ist seitdem zu einem bedeutenden Leitfaden für das Software-Engineering geworden.

Im Zentrum von DDD steht das Domain-Modell, das eine konzeptionelle Karte der Domäne mit all ihren fachlichen Komponenten, Zusammenhängen und Regeln erstellt. Ein gut gestaltetes Domain-Modell spiegelt die Realität des Geschäfts- oder Anwendungsbereiches wider und spricht die Sprache der Fachexperten. Diese gemeinsame Sprache wird im DDD-Kontext als "Ubiquitous Language" bezeichnet und ermöglicht es dem Entwicklungsteam – bestehend aus Entwicklern, Designern, Business-Analysten und anderen Stakeholdern – effektiv zu kommunizieren und komplexe Probleme zu lösen.

Die Prinzipien des Domain-Driven Designs dienen dazu, die Entwicklung so zu steuern, dass sie sich stets an der Logik und den Regeln der Domäne orientiert. Dabei werden technische Entscheidungen so getroffen, dass sie das Domain-Modell unterstützen und verstärken. Es geht darum, dass die Software das wahre Wesen des Geschäftsbereiches abbildet und so einen echten Wert für den Nutzer bietet.

DDD unterteilt sich in vier grundlegende Säulen:

  1. Strategic Design: Dieser Bereich legt den Fokus auf das große Ganze der Domäne. Es umfasst Konzepte wie "Bounded Contexts", die die Grenzen und die Interaktion zwischen Subdomänen definieren, sowie "Context Mapping", das hilft, Abhängigkeiten und Beziehungen zu identifizieren.
  1. Tactical Design: Hier geht es um die Umsetzung des Domain-Modells in tatsächlichen Code. Dabei kommen Muster wie "Aggregates", "Entities" und "Value Objects" zum Einsatz, um die Modellierung so nah wie möglich an der fachlichen Logik zu halten.
  1. Ubiquitous Language: Die einheitliche Sprache, welche über alle Aspekte des Projekts konsistent verwendet wird. Dies erleichtert das Verständnis und die Kommunikation innerhalb des Teams und mit den Stakeholdern.
  1. Domain Model: Das Herzstück von DDD. Das Domain-Modell umfasst nicht nur die Datenstruktur, sondern auch das Verhalten und die Regeln der Domäne.

Die Implementierung von DDD kann die Qualität und die Flexibilität der Software maßgeblich verbessern, da sie dazu beiträgt, dass das Entwicklungsteam die Geschäftsziele und -prozesse tiefgründig versteht. Diese Vorgehensweise fördert wiederverwendbaren, modularen und wartbaren Code und kann die langfristige Wartung und Weiterentwicklung von Softwarelösungen erleichtern.

Für Teams, die sich für Domain-Driven Design entscheiden, ist es wichtig, sich die Zeit zu nehmen, um die Fachsprache ihrer Anwender wirklich zu verstehen und dieses Wissen im Domain-Modell abzubilden. Dieser Ansatz führt oft zu besseren Entscheidungen in der Architektur und zu einem Produkt, das besser an den Bedürfnissen seiner Benutzer ausgerichtet ist.


veröffentlicht am: 29.03.2024 04:16   |  bearbeitet am: 28.03.2024 17:57
Cookie-Richtlinie