Command-Query-Separation
Command-Query-Separation (CQS)[1] (etwa: „Kommando-Abfrage-Trennung“) ist ein Prinzip des Softwareentwurfs. Das QCS-Prinzip wurde von Bertrand Meyer im Zuge seiner Arbeit an der Programmiersprache Eiffel erdacht.
Das QCS-Prinzip besagt, dass eine Methode entweder als Abfrage (query) oder als Kommando (command, modifier oder mutator) implementiert werden soll. Eine Abfrage muss hierbei Daten zurückliefern und keine Nebeneffekte auf dem beobachtbaren Zustand des Systems aufweisen, während ein Kommando beobachtbare Nebeneffekte aufweist und keine Daten zurückliefert.
Command-Query-Responsibility-Segregation
Die Command-Query-Responsibility-Segregation (CQRS)[2] (etwa: „Kommando-Abfrage-Zuständigkeits-Trennung“) ist eine Variante des QCS-Prinzips auf Datenbank-Abfragen, welches durch Greg Young definiert wurde.[3]
Internetlinks
- CQRS
- CQRS Journey. In: patterns & practices, MSDN. Microsoft, Juli 2012, abgerufen am 13. Juli 2014 (englisch, Tutorial zu CQRS und Event Sourcing in C#).
- Kanasz Robert: Introduction to CQRS. In: CodeProject. 21. März 2013, abgerufen am 13. Juli 2014 (englisch, Einführung in CQRS in C#).
- Greg Young: CQRS/DDD by Greg Young. In: YouTube. Rinat Abdullin, 20. Januar 2012, abgerufen am 13. Juli 2014 (englisch, Einführung in CQRS und DDD).
- Lev Gorodinski: Domain-Driven Design, Event Sourcing and CQRS with F# and EventStore. In: YouTube. DC F# Meetup, 6. März 2014, abgerufen am 13. Juli 2014 (englisch, CQRS und EventSourcing in F#).
Quellen
- ↑ Martin Fowler: CommandQuerySeparation. 5. Dezember 2005, abgerufen am 18. Mai 2014 (englisch).
- ↑ Martin Fowler: CQRS. 14. Juli 2011, abgerufen am 18. Mai 2014 (englisch).
- ↑ Greg Young: CQRS Documents by Greg Young. (PDF) In: WordPress. November 2010, abgerufen am 13. Juli 2014 (englisch).