Seit ich Greg Youngs Vortrag Unshackle Your Domain auf der QCon '08 in San Francisco und einen anschließenden zweitägigen Schulungskurs von Greg Young besucht habe, wollte ich eine Beispielanwendung erstellen, die die Prinzipien der Command-Query Responsibility Separation (CQRS) nutzt. Allerdings kamen andere interessante Dinge dazwischen, so dass ich nie dazu gekommen bin. Aber alle paar Monate haben wir eine eintägige interne Schulung bei Xebia Software Development und nachdem Sjors Grijpink und ich vorgeschlagen hatten, eine Schulung zu DDD und CQRS zu geben, hatten wir etwas Zeit, um tatsächlich eine CQRS-Beispielanwendung vorzubereiten und zu implementieren.
Die Anwendung ist recht einfach (wie es sich für eine eintägige Schulung gehört), berührt aber alle wichtigen Komponenten, die für eine vollständige CQRS-Implementierung erforderlich sind.
Den Quellcode für die Trainingsübungen finden Sie auf github. Es gibt drei Zweige:
- Übung - der Code, der für die Durchführung der Trainingsübungen verwendet wird.
- Lösung - derselbe Code wie oben, aber mit den hinzugefügten Lösungen.
- master - der Hauptentwicklungszweig, der derzeit verwendet wird, um fortgeschrittenere Funktionen wie Snapshotters, Konfliktlösung bei Befehlsereignissen, historische Rückverfolgung usw. zu implementieren.
Die Xebia ITR CQRS-Präsentation ist ebenfalls verfügbar. Alles in allem war die Schulung ein Erfolg, und ich denke, dass die grundlegenden CQRS-Prinzipien der richtige Weg sind, wenn Sie Unternehmensanwendungen mit einer komplizierten Domänenlogik oder starken Anforderungen an Auditing oder historische Rückverfolgung erstellen müssen.
Verfasst von
Erik Rozendaal
Unsere Ideen
Weitere Blogs
Contact



