thePHP.cc Logo English Kontakt
mood

CQRS

Command/Query Responsibility Segregation (CQRS) ist ein von Greg Young benanntes Architekturprinzip, das auf dem von Bertrand Meyer bereits in den 1980er-Jahren formulierten CQS-Prinzip (Command-Query Separation) beruht. Hierbei werden Operationen, welche Zustand verändern (Kommandos) strikt von Abfragen (Queries), die keine signifikante Zustandsänderung hervorrufen, getrennt.

Interessant ist, dass das CQS-Prinzip , das letztlich die Trennung von Gettern und Settern (eigentlich: Mutatoren) vorschlägt, von vielen Entwicklern auf Objektebene intuitiv umgesetzt wird, während diese Trennung auf Anwendungsebene deutlich seltener vorgenommen wird. Dennoch liegt dies gerade für Webanwendungen nahe, da ja auch das HTTP-Protokoll eine strikte Trennung von lesenden (GET) und schreibenden (allgemeiner: den Zustand verändernden) Methoden wie beispielsweise POST vorsieht.

Die Anwendung von CQRS-Prinzipien verbessert nicht nur das Design, weil es die Erstellung von mehrerer schlanker und einfacher Modelle ("multiple models") nahelegt, sondern kann in vielen Anwendungsfällen auch die Security verbessern, indem schreibende Operationen gar nicht erst möglich sind, weil es dafür gar nicht erst Methoden gibt.

Schulung Design Patterns

Jeden Monat lernen wir in 45 Minuten durch Live-Coding ein Entwurfsmuster kennen und richtig einzusetzen.

Weitere Schulungen
Artikel Besseres Design dank CQRS Weitere Artikel
Präsentation Introducing CQRS into Legacy Code Weitere Präsentationen