DDD und CQRS mit Greg Young in Wien

Standard

(Gastbeitrag von Jörg Egretzberger)

Am 16. September spricht Greg Young auf der Community-Konferenz “Professional .Net 2011” in Wien über Domain Driven Design (DDD) und wie man dieses in Projekten mit der von ihm beschriebenen Softwarearchitektur Command and Query Responsibility Segregation (CQRS) erfolgreich umsetzen kann.

Aus Wikipedia:

“Domain-Driven Design ist nicht nur eine Technik oder Methode. Es ist
viel mehr eine Denkweise und Priorisierung zur Steigerung der
Produktivität von Softwareprojekten im Umfeld komplexer fachlicher
Zusammenhänge.”

In DDD möchte man nicht nur Daten manipulieren (CRUD), sondern auch in einer gemeinsamen Sprache festhalten aus welchem Grund sich Daten geändert haben und welches Verhalten das System hat. Die Intention der Benutzeraktion soll erfasst werden. So sind beispielsweise die Aktionen “Kunde eröffnet ein Konto” und “Geld wird abgehoben” wesentliche Aktionen eines Bankensystems. Mit DDD kann das System und dessen Verhalten (Behavior) modelliert werden.

Hinter diesen Aktionen stecken allerdings oftmals auch Business-Regeln wie etwa, dass nur max. 3.000 Euro pro Tag über Automaten von einem Konto behoben werden können. CQRS bietet eine elegante und skalierbare Lösung um dies in Software umzusetzen. Die Business Regeln enden nicht im Client, sondern werden zentral in der Domäne (dort wo der meiste Business Nutzen entsteht) gehalten.

Greg zeigt auch, wie dadurch das automatisierte Testen mit Unit Tests vereinfacht und expliziter wird. Weiters wird auch aufgezeigt, wie durch das Speichern der durchgeführten Aktionen zu einem späteren Zeitpunkt Auswertungen die im Vorhinein nicht definiert wurden, einfach umgesetzt werden können.

Beispiel: der Bankdirektor möchte eine Auswertung wie viele Kunden ihr Bankkonto schließen, nachdem sie umgezogen sind um durch Werbemaßnahmen dem gegenzusteuern. Dabei handelt es sich um einen wesentlichen
Business-Vorteil.

CQRS wird nicht nur in sehr großen Softwareprojekte eingesetzt, die enorme Skalierbarkeit benötigen. Es hilft bereits bei Projekten die nicht nur “Create, Read, Update, Delete” Befehle haben, sondern bei denen auch Validierung und Business Regeln umgesetzt werden sollen.

Ganz treu dem Motto der heurigen Professional .Net: Einfach bessere Software entwickeln!

Mehr Infos zur Professional .Net 2011 findet ihr unter www.dotnet-austria.at.

Leave a Reply

Your email address will not be published. Required fields are marked *