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

Что такое CQRS

CQRS (Command Query Responsibility Segregation) — это шаблон проектирования, разделяющий операции чтения (Query) и записи (Command) в разные модели.

Основные идеи:

  • Команды (Commands) изменяют состояние (например, createUser, updateOrder). Они выполняются через одну модель, обычно с валидацией и бизнес-логикой.
  • Запросы (Queries) только читают данные (например, getUserById, listOrders). Они используют упрощенную модель, часто оптимизированную для чтения (например, денормализованные данные).

Преимущества:

  • Масштабируемость (разные БД для чтения/записи).
  • Гибкость (разные модели под задачи).
  • Упрощение сложных систем.

Пример:

java
// Command
public class CreateUserCommand {
    private String name;
    private String email;
    // геттеры/сеттеры
}

// Query  
public class UserView {
    private String id;
    private String name;
    // геттеры/сеттеры
}

Когда использовать:

  • Высокая нагрузка на чтение.
  • Сложные бизнес-правила для записи.
  • Разные требования к данным для чтения/записи.

Минусы:

  • Усложнение архитектуры.
  • Синхронизация моделей (Event Sourcing часто используется вместе).
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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