Domain Driven Design
Domain Driven Design (DDD) ist das konsequente Design der Software anhand von Nutzungsfällen. Mit DDD wird, vereinfacht gesagt, die Fachlichkeit in kleinere Einheiten gegliedert und die Software dazu passend entworfen.
Domain Driven Design (DDD) ist das konsequente Design der Software anhand von Nutzungsfällen. Mit DDD wird, vereinfacht gesagt, die Fachlichkeit in kleinere Einheiten gegliedert und die Software dazu passend entworfen.
Kommt Ihnen eines dieser Szenarien bekannt vor?
In jeder dieser Situationen bringt es signifikante Vorteile, Domain Driven Design anzuwenden.
Unsere Expert*innen haben langjährige Erfahrung mit DDD und führen bei unseren Kunden regelmäßig DDD-Workshops durch. Die Zielsetzungen dabei sind unterschiedlich: Beispielsweise geht es darum, eine gemeinsame Sicht auf fachliche Prozesse zu bekommen, als Vorbereitung, wenn eine Anwendung modularisiert werden soll oder als Vorbereitung, ehe die Umsetzung eines umfangreicheren Features beginnt.
Unsere Entwickler*innen lernen die Kernkonzepte von DDD schon bei der Basisausbildung. Weiterbildungen zu diesem Thema gehören bei andrena zum Standardprogramm. Damit können unsere Engineers einerseits mit ihren eigenen Kenntnissen die Entwicklung bei unseren Kunden unterstützen, andererseits geben sie dieses Know-how an die Entwickler*innen in den Kundenteams weiter.
"Wir haben die Vorteile des DDD bereits in vielen Projekten zu schätzen gelernt. Wir beraten Sie gerne, wenn Sie überlegen, ob und wie Ihnen DDD in Ihren anstehenden Projekten Nutzen stiften kann."
Lars Alvincz
Agile Software Engineer
Weil DDD ein Set von Werkzeugen und Mustern zur Verfügung stellt, um zunächst einen Geschäftsprozess zu beschreiben und damit eine Software zu designen. Dieses Design ist das Ergebnis der Zusammenarbeit zwischen Entwicklung und Fachbereich. Dabei basiert das Design darauf, fachliche Einheiten, die „bounded contexts“, voneinander zu differenzieren. Damit liefert DDD einen möglichen „Schnitt“ für Microservices - kleine Softwareeinheiten, die in sich eine geschlossene, kleine („micro“) Anwendung darstellen. Die Abbildung illustriert solche Bounded Context im Zusammenhang mit einer Flugbuchung:
Außerdem geht DDD iterativ vor - der einmal modellierte Geschäftsprozess wird kontinuierlich geprüft und verbessert. Das entspricht den agilen Prinzipien. Dabei sorgt die kontinuierliche Lieferung kleiner Software-Inkremente dafür, dass der Fachbereich sofort testen kann, ob die Software die gewünschte Intention erfüllt. Und wenn das mal nicht der Fall sein sollte? Dann erleichtert es die via DDD entwickelte gemeinsame Sprache zwischen Entwicklern und Fachbereich, ein gemeinsames Verständnis der Anforderungen zu erlangen ─ Ausgangsbasis für ein verbessertes (Teil-)Produkt.
Sie möchten sich unverbindlich beraten lassen oder haben konkrete Fragen?