Domain Driven Design

Mein neuer Arbeitgeber setzt sehr konsequent auf DDD, was mir bisher noch nicht untergekommen ist. Ich habe mich jetzt in meinen ersten drei Arbeitstagen schonmal schlau gemacht (und verstehe auch prinzipiell um was es geht), würde aber gerne wissen, was ihr schon für Erfahrungen damit hattet und was ihr von der Vorgehensweise haltet.

Ich fand DDD sehr interessant, wenn der Code nicht „Spring! Hibernate!“ und sonstige technischen Frameworks bruellt sondern Primaer die Problemdomaene abbildet, dann kann das lesen des Codes einem schon mal helfen zu verstehen worum es da eigentlich geht.

Viel in DDD bzw. Evans Buch dreht sich um Kommunikation bzw. Ausdruckskraft, „Ubiquitous Language“ die von allen Beteiligten konsequent genutzt werden sollte, gab im letzten Job immer wieder die Situation dass 3 verschiedene Begriffe fuer ein und dieselbe Sache verwendet wurden, aber auch dass derselbe Begriff fuer 3 verschiedene Dinge verwendet wurde, je nachdem mit wem man spricht muss man dann staendig „uebersetzen“, Missverständnisse und Probleme oder zumindest ineffiziente Kommunikation ist dann die Folge.

Leider hatte ich nie das Gluck in eine Firma zu kommen in der DDD dann auch konsequent praktiziert wurde.

Kurz: DDD finde ich gut :slight_smile:

2 Likes

Hallo,

auch wenn es etwas spät kommt.

DDD möchte ich nicht mehr missen. Das blaue Buch von Evans kann ich dazu nicht empfehlen. Domain Driven Design kompakt ist für den Einstieg lohnenswert. Das in Verbindung mit Clean Architecture (oder hexagonaler Architektur) ist unschlagbar.
Es genügt aber IMHO nicht, wenn nur die Entwicklung sich damit auskennt. Bei DDD ist der Fachbereich ganz stark in der Verantwortung.

Um die Fachlichkeit aus dem Fachbereich herauszukitzeln bzw. zusammen zu erarbeiten kann ich Event Storming von Alberto Brandolini empfehlen. Diese Technik kostet Zeit, aber ist ungemein wertvoll.

Was ich dann in Verbindung mit Clean Architecture besonders schön finde ist, dass man den fachlichen Kern aus der IDE in ein UML exportieren kann und dies als Grundlage für eine fachliche Diskussion nutzen kann.

Und noch ein Hinweis: Implementiere die Fachlichkeit in der Fachsprache. Sind diese Begriffe z.B. deutsch, sollte sich das im Code wiederfinden.

Kurz: DDD finde ich gut :slight_smile:

2 Likes