Slide 1

Slide 1 text

CQRS. Введение Газизов Альберт

Slide 2

Slide 2 text

Содержание 1. Почему CQRS ? a) История возникновения современной архитектуры b) Проблемы CRUD c) CQRS как решение проблем 2. Архитектура CQRS приложений

Slide 3

Slide 3 text

С чего все началось?

Slide 4

Slide 4 text

Эра бумажных документов

Slide 5

Slide 5 text

Эра CRUD

Slide 6

Slide 6 text

Новая эра - TASK UI

Slide 7

Slide 7 text

CRUD - манипуляция данными TASK UI - выполнение бизнес задач

Slide 8

Slide 8 text

Проблемы CRUD

Slide 9

Slide 9 text

ActiveRecord model 1. Нарушению инкапсуляции бизнес объектов 2. Lazy loading -> N+1 query 3. Денормализация размывает Domain Model 4. Ухудшение читаемости кода 5. Трудности поддержки 6. Проблема масштабируемости

Slide 10

Slide 10 text

Решение - CQRS Command Query Responsibility Segregation

Slide 11

Slide 11 text

Классическая архитектура

Slide 12

Slide 12 text

CQRS архитектура

Slide 13

Slide 13 text

Queries Многослойная архитектура Запрос к DB Конвертирование Запроса к DB в доменную модель Конвертирование в DTO Передача клиенту CQRS Запрос к DB Конвертирование Запроса к DB в доменную модель Конвертирование в DTO Передача клиенту

Slide 14

Slide 14 text

Commands Команда – представляет собой отражение бизнес действия, действия в котором заинтересован пользователь приложения. Преимущество использования команд: 1. Ориентация на бизнес проблемы пользователя. 2. Удобный механизм мониторинга и масштабирования

Slide 15

Slide 15 text

Контроллеры - не отображают бизнес действия

Slide 16

Slide 16 text

Команды - отображают бизнес действия приложения

Slide 17

Slide 17 text

1. Сложная предметная область 2. Domain Driven Design 2. Task UI 3. Нужна масшабируемость Когда использовать?

Slide 18

Slide 18 text

Вопросы?