Что такое CQRS
Python
Middle
Без компании
Что такое CQRS
Ответы
CQRS (Command Query Responsibility Segregation) — это шаблон проектирования, разделяющий операции чтения (Query) и записи (Command) в разные модели. Основная идея — разделить ответственность: команды изменяют состояние, а запросы только читают данные.
**Преимущества:**
- Масштабируемость (можно оптимизировать чтение и запись отдельно).
- Гибкость (разные модели для разных задач).
- Упрощение сложных систем.
**Пример на 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-приложений.