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

Что такое CQRS

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

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

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

Пример на Python:

python
# Command Model (Write)
class UserCommandHandler:
    def create_user(self, name):
        # Сохраняем в БД
        user = User(name=name)
        db.session.add(user)
        db.session.commit()

# Query Model (Read)
class UserQueryService:
    def get_user(self, user_id):
        # Читаем из БД (возможно, из денормализованной таблицы)
        return db.session.query(User).get(user_id)

Нюансы:

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

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

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

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