• Programmier Blog

    News, Tipps & Tricks rund um die Software Entwicklung

  • Programmieren Blog

    Alles rund um C# und .NET

  • Entwickler Blog

    deutschsprachiger Blog für Software Entwickler

  • ;
Home » Blog » Software Entwicklung » Domain-Driven Design (DDD) - so bewerkstelligst du komplexe Software Projekte

Kategorie: Software Entwicklung

Domain-Driven Design (DDD) - so bewerkstelligst du komplexe Software Projekte


Domain Driven Design, abgekürzt DDD, hat sich längst einen Namen in der Software Entwicklung gemacht. Das erste Buch in diese Richtung stammt von Eric Evans
 

Domain-Driven Design hilft uns den eigentlichen Fokus beim Programmieren einer komplexeren Anwendung nicht zu verlieren. Es geht beim Erstellen von Programmen nämlich nicht nur um das Schreiben des Codes bzw. dem Erstellen der Software, sondern vor allem darum zu verstehen, was der Anwender bzw. Client eigentlich an Features benötigt, um dessen Probleme zu lösen.
Wird Domain-Driven Design spärlich oder gar nicht umgesetzt, kann es leicht passieren, dass die Endversion der Software von den Anforderungen des Kunden abweicht.
 

Warum sollst du DDD anwenden?

Einerseits umfasst Domain Driven Design alles was in der Software Entwicklung so anfällt. Vom Erstgespräch mit dem Kunden bis hin zur Entwicklung, Testphase und Rollout. DDD hilft uns, das Software Projekt immer unter Kontrolle zu halten. Dadurch können wir den Erfolg auch bei großen, skalierbaren Software Anwendungen sicherstellen. Weiters stellt DDD Techniken und Patterns bereit, um komplexe Problemstellungen zu lösen. Das wiederum führt zu einem eleganten und testbaren Code, der zudem wunderbar die Domain widerspiegelt.
 

Kommunikation mit Domain Experten - Ubiquitous Language

Als Software Entwickler tappt man gerne in die Falle eigene Namenskonventionen im Programm zu verwenden. Doch in der Praxis stellt sich oft heraus, dass ganz andere Namen vom Kunden verwendet werden. Entwickler sprechen gerne von Tabellen und Klassen, die man sich in der Schnelle ausgedacht hat, die jedoch mit der eigentlichen Domain des Kunden kaum etwas gemeinsam haben. Daher hilft uns DDD, in der Domain des Kunden zu sprechen (Ubiquitous Language) und diese Wörter letztendlich im Programmcode abzubilden.

Wenn man von Ubiquitous Language spricht, meint man, dass jeder Teilnehmer die selben Schlagwörter (Terms) verwendet. So wird im Vorfeld geminsam mit allen Projektbeteiligten die Domain genau analysiert und die Schlagwörter gefunden, die der Kunde hauptsächlich verwendet. Alle Teilnehmer des Software Projekts also Entwickler, Tester, Product Owner, Projekt Manager und Kunde bzw. Endanwender halten sich an diese Konvention. Das führt dazu, dass man sich gegenseitig versteht. Tauscht man sich aus, braucht man bloss nur eines dieser Schlagwörter verwenden und das Gegenüber weiß sofort, über was man gerade diskutieren möchte.

 

Separation of concerns

Das Prinzip "Separation of concerns" spielt beim Domain-Driven Design eine ganz besonders große Rolle. Anstatt sich mit den Details der Software auseinanderzusetzen, wie zB dem Abspeichern von Daten, hilft uns DDD den Fokus der Domain, also das "Big Picture" nie aus den Augen zu verlieren. Natürlich hat man sich auch mit den all den Implentierungsdetails auseinanderzusetzen, doch das erfolgt separat.

Modelling ist ein Key Aspekt in DDD und erlaubt uns ein komplexes Domain Model runterzubrechen in immer kleiner werdende Subdomains.
 

Vorteile von DDD:

  • Flexibel
  • Die Software ist mehr an den Kundenwünschen angepasst
  • DDD hilft uns komplexe Problemstellungen elegant zu lösen
  • Der Code ist gut strukturiert und einfach zu testen

DDD sollte jedoch nur bei komplexen oder großen Software Anwendungen angewendet werden.


Weiterführende Bücher:

Domain-Driven Design: Tackling Complexity in the Heart of Software

Domain-Driven Design erfüllt alle Anforderungen, wenn es darum geht große und komplexe Software Programme zu entwickeln. Das Buch bietet den Lesern einen systematischen Ansatz für domain-getriebenes Design und präsentiert eine umfangreiche Reihe von Design-Best-Practices, erfahrungsbasierten Techniken und Grundprinzipien, die die Entwicklung von Softwareprojekten für komplexe Bereiche erleichtern.

Buch kaufen



Applying Domain Driven Design and Patterns

  • Einsatz von Architekturtechniken zur Verbesserung der Softwarequalität
  • Verwendung von Domänenmodellen zur Unterstützung von Geschäftsregeln und Validierung
  • Anwendung von Unternehmensmustern zur Bereitstellung von Persistenzunterstützung über NHibernate
  • Effektive Planung für die Präsentationsschicht und das UI-Testing
  • Dependency Injections, Aspect Orientation und andere neue Paradigmen

Buch kaufen
 


Implementing Domain-Driven Design

Mit dem Buch "Implementing Domain-Driven Design" hat Vaughn nicht nur einen wichtigen Beitrag für die Domain-Driven Design Community geleistet, sondern auch zur Verbreitung wichtiger Enterprise Application Patterns. So wird gezeigt wie DDD zu dem wachsenden Spektrum an Architekturstilen und Persistenztechnologien für Unternehmensanwendungen - einschließlich SOA und REST, NoSQL und Datenraster - passt, das sich in den zehn Jahren seit der Veröffentlichung von Eric Evans' wegweisendem Buch herausgebildet hat.
Buch kaufen


von Gerald


Ähnliche Artikel:

Design Patterns
Programmieren ist schnell erlernt, kann man deshalb aber auch gleich Software entwickeln?
Vermeide Codeduplizierung
Was bedeutet API?
Was macht einen guten Programmierer aus?
Was sind Code Reviews und warum sind sie so wichtig?


Hinterlasse einen Kommentar:

* Pflichtfelder

Nach erfolgreicher Überprüfung wird dein Kommentar freigeschaltet!

Um Spam zu vermeiden, bitte obenstehenden Text eingeben:



programmieren-lernen.net übernimmt weder Haftung noch Garantie für die Richtigkeit dieses Artikels.


Drucken [Drucken]         [Bookmark]         [Verlinken]

C# Online Kurs

Lerne spielerisch die Programmiersprache C#

      
     C# lernen

C# Tipps

       

Erhalte auch kostenlose Tipps & Tricks rund ums Programmieren.

Als Dankeschön erhältst du bei einer erfolgreichen e-mail Bestätigung einen Willkommens-Gutscheincode im Wert von 10 EUR, den du beim Erwerb des C# Kurses einlösen kannst.


Partner werden

    


Verdiene passiv Geld mit jedem verkauften C# Kurs, der durch deine Vermittlung zustande kommt.