DDD

Vaughn Vernon über DDD, Microservices und reaktive Programmierung

Die Geburtsstunde des Domain-driven Design liegt im Jahr 2003. Eric Evans Buch „Domain-Driven Design: Tackling Complexity in the Heart of Software“ war ein Meilenstein und wird heute noch vielfach rezipiert. Entscheidend zur Verbreitung von DDD hat zudem Vaughn Vernons Werk „Implementing Domain-Driven Design“ beigetragen. Wir haben uns mit Vaughn über die Motivation und Kernideen hinter DDD sowie ihr Verhältnis zu Microservices und reaktiven Architekturen unterhalten.

Eine gemeinsame Sprache sprechen: Vielfältige Aspekte des Domain-driven Designs

Softwareprojekte scheitern oft nicht an der Technik, sondern an interdisziplinärer Kommunikation, wenn es zwischen Entwicklern und Fachleuten Verständnisprobleme gibt. Sie arbeiten mit unterschiedlichen Terminologien und sprechen somit unterschiedliche Sprachen. Hilfreich ist ein einheitliches und standardisiertes Vorgehen, das Entwickler und Fachexperten integriert. Domain-driven Design (DDD) verfolgt dieses Ziel.

Umfassend und ganzheitlich: Strategic Design

Domain-driven Design bietet uns mit dem sogenannten Strategischen Design eine Anleitung, wie eine Domain und damit der Problemraum fachlich erfasst und aufgeteilt werden kann. Diese Aufteilung lässt sich dann auf den Lösungsraum – die Software – übertragen. Die Fachbegriffe aus DDD, die dabei eine Rolle spielen, sind: Domain, Subdomain, Bounded Context und schließlich die Context Map für das Zusammenspiel der Bounded Contexts. In diesem Artikel werden wir diese Begriffe und unser Verständnis davon vorstellen.

Event-basiert und evolvierbar: Anwendungsentwicklung mit dem Axon Stack

Obgleich das Zielbild sowohl ein Monolith als auch eine Microservices-Architektur sein kann – das Axon Framework offeriert einen leichtgewichtigen Ansatz zur Implementierung Event-basierter Anwendungen. Dabei stützt sich das Framework auf gängige Muster aus dem Domain-driven Design (DDD) und begünstigt die Umsetzung einer Anwendung nach dem Architekturprinzip Command Query Responsibility Segregation (CQRS) und der Persistenzstrategie Event Sourcing. Durch diese Flexibilität und die Tatsache, dass das Axon Framework bestens mit dem Spring Framework integriert ist und damit ein quasistandardisiertes Programmiermodell unterstützt, ist es für den modernen Java-Entwickler einen Blick wert.

Legacy mit DDD verbessern

Legacy-Code treibt die Entwicklungskosten in die Höhe und führt dazu, dass wir diese alten Softwaresysteme nicht mehr gerne anfassen. Ist das unvermeidbar? Können wir etwas tun? Mit Domain-driven Design (DDD) haben wir ein Werkzeug zur Hand, um Legacy-Code Schritt für Schritt wieder in den Bereich beherrschbarer Wartungskosten zu bringen.

Event Storming aus der Sicht eines Testers

Event Storming ist im Domain-driven Design eine gute Methode, ein gemeinschaftliches Verständnis aller Projektbeteiligter bezüglich der Anwendungsdomäne zu erlangen und dabei ein Prozessmodell zu erstellen. Oft wird dabei aber außer Acht gelassen, dass die dabei entwickelten Informationen nur mit wenig Aufwand direkt in automatisierbare Testfälle transformiert werden können. Daher soll hier die Frage beantwortet werden, wie die verschiedenen Modellierungspattern des Event Stormings in sinnhafte Behavior-driven-Design-Testfälle umgesetzt werden können.

Ubiquitous Language: Warum ist Sprache so wichtig?

Ein Element, das in der gesamten Domain-driven-Design-Literatur querschnittlich präsent ist, ist die Ubiquitous Language, die allgegenwärtige Sprache. Allgegenwärtig bezieht sich darauf, dass es sich hierbei um eine Sprache handelt, die von Softwareentwickler*innen und Fachexpert*innen gemeinsam gesprochen wird. Diese Sprache soll dann auch die Basis für die Entwicklung des Softwaremodells sein. Im Rahmen dieses Artikels gehen wir erst auf die Motivation für die Etablierung einer Ubiquitous Language ein, bevor schließlich das Potenzial und die Möglichkeiten für die Arbeit mit einer solchen Sprache vorgestellt werden. Weiterhin werden noch kurz die Vorgehensweisen zur Herleitung einer Ubiquitous Language erläutert.

Vaughn Vernon über DDD, Microservices und reaktive Programmierung

Die Geburtsstunde des Domain-driven Design liegt im Jahr 2003. Eric Evans Buch „Domain-Driven Design: Tackling Complexity in the Heart of Software“ war ein Meilenstein und wird heute noch vielfach rezipiert. Entscheidend zur Verbreitung von DDD hat zudem Vaughn Vernons Werk „Implementing Domain-Driven Design“ beigetragen. Wir haben uns mit Vaughn über die Motivation und Kernideen hinter DDD sowie ihr Verhältnis zu Microservices und reaktiven Architekturen unterhalten.

  • 1
  • 2