Command Query Separation (CQS) is een architectonisch patroon dat de bewerkingen die de systeemstatus of commando's wijzigen, ook wel schrijfbewerkingen genoemd, scheidt van de bewerkingen die het systeem opvragen om gegevens of informatie te verkrijgen, ook wel leesbewerkingen genoemd. Het CQS-patroon benadrukt de noodzaak om zorgen te scheiden door een duidelijk onderscheid te maken tussen de procedures die informatie wijzigen en procedures die alleen informatie retourneren.
Het idee achter CQS is dat commando's die de toestand van het systeem wijzigen, geen waarde mogen retourneren en dat query's geen neveneffecten of mutaties mogen hebben. In CQS kan een methode dus een opdracht of een query zijn, maar niet beide. Deze scheiding zorgt voor duidelijkheid, verbetert de onderhoudbaarheid en vermindert de complexiteit van de code.
Door CQS te gebruiken, kunnen ontwikkelaars expliciet de bedoeling van een methode definiëren, wat de code op zijn beurt leesbaarder en zelfdocumentatie maakt. CQS kan ook helpen om de schaalbaarheid en prestaties van het systeem te verbeteren, aangezien leesbewerkingen kunnen worden geoptimaliseerd voor systemen die veel lezen, en schrijfbewerkingen kunnen worden geoptimaliseerd voor systemen die veel schrijven.
Publicatie datum: