Разделение команд и запросов
- Разделение команд и запросов (CQS) – принцип императивного программирования, разработанный Бертраном Мейером.
- CQS требует, чтобы методы были либо командами, выполняющими действие, либо запросами, возвращающими данные.
- CQS хорошо подходит для методологии проектирования по контракту (DbC).
- CQS упрощает программу, делая состояния и изменения состояния более понятными.
- CQS применим к любой парадигме программирования, требующей рассуждения о побочных эффектах.
- Разделение ответственности за выполнение командных запросов (CQRS) обобщает CQS для архитектурного уровня.
- CQRS хорошо вписывается в модели программирования, основанные на событиях, и может использоваться для сложных доменов.
- CQS может создавать сложности при реализации реентерабельного и многопоточного программного обеспечения.
Полный текст статьи: