Встречается на собеседованиях • сегодня

Что такое Command Query Separation

Command Query Separation (CQS) — это принцип проектирования, который разделяет операции на команды (изменяющие состояние) и запросы (возвращающие данные).

Ключевые идеи:

  • Команды выполняют действия (например, сохранение данных), но не возвращают значения.
  • Запросы возвращают данные, но не изменяют состояние системы.

Пример:

javascript
// Команда (изменяет состояние)
function updateUser(user) {
  database.save(user); // нет return
}

// Запрос (возвращает данные)
function getUser(id) {
  return database.find(id); // не изменяет состояние
}

Плюсы:

  • Четкое разделение логики.
  • Упрощение тестирования и понимания кода.

Минусы:

  • Иногда сложно строго соблюдать (например, если метод должен и изменять состояние, и возвращать данные).

Применяется в паттернах (CQRS) и API-дизайне (REST, GraphQL).

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы