Описание тега command-query-separation

Разделение команд и запросов (CQS) - это принцип императивного компьютерного программирования. Не путать с разделением ответственности команд-запросов (CQRS), распределенным шаблоном проектирования, полученным из CQS.

Разделение команд и запросов (CQS) - это принцип императивного компьютерного программирования. Он был разработан Бертраном Мейером как часть его новаторской работы над языком программирования Eiffel.

В нем указано, что каждый метод должен быть либо командой, выполняющей действие, либо запросом, возвращающим данные вызывающей стороне, но не обоими сразу. Другими словами, вопрос не должен менять ответ. Более формально методы должны возвращать значение, только если они ссылочно прозрачны и, следовательно, не имеют побочных эффектов. Примечательно, что жесткая реализация этой спецификации делает практически невозможным отслеживание количества отправленных запросов; он явно задуман как руководство по программированию, а не как правило для хорошего кодирования, например, как избежать использования перехода из вложенного цикла.

Не путать с разделением ответственности команд-запросов ( cqrs), распределенным шаблоном проектирования, полученным из CQS.

См. Википедию для получения дополнительной информации.