SlideShare a Scribd company logo
1 of 28
Примеры и вопросы
построения
архитектуры
приложений
Руслан Сафин, @razonrus
Руслан Сафин
— Технический директор в byndyusoft.com
— Отвечаю за развитие культуры разработки в компании
— Организую процессы старта и разработки проектов как внешний
консультант
— Неспешно OpenSource’ю github.com/razonrus
— 10+ лет опыта коммерческой разработки на .NET ;)
— Играю в футбол и в шахматы
Так ты ж из этих…
Пример реализации
CQRS-архитектуры
План
— Применимость
— CQRS-подход
— Реализация инфраструктуры приложения
Применимость или боевые
условия
Developing Microservices with Aggregates — Chris Richardson
Developing Microservices with Aggregates — Chris Richardson
Требования к архитектуре
каждого из µ-сервисов
— Легковесность
добавляем/обновляем µ-сервисы много и быстро
— Масштабируемость
µ-сервис может быть запущен в любом количестве
экземпляров/потоков
— Отказоустойчивость
µ-сервис готов к неполадкам и отказам систем
— Многопоточный неблокирующий доступ к данным
нагрузка на код µ-сервиса выше, чем в случае того же кода
в монолите
CQRS-подход
Command-Query
Responsibility Segregation
Внутри приложения
На уровне приложений
В жизни
CQRS
— Легковесность
соблюдение SRP позволяет быстро вносить изменения в
логику
— Масштабируемость
разделение чтения и записи даёт гибкость в
масштабировании, настройках и оптимизации доступа к
данным
— Отказоустойчивость
разделение на уровне приложений минимизирует потери от
неполадок
— Многопоточный неблокирующий доступ к данным
архитектура приложения даёт меньше шансов выстрелить
себе в ногу
Пример реализации
Byndyusoft.Dotnet.Core.Infrastructure
— Open Source·
https://github.com/Byndyusoft/Byndyusoft.Dotnet.Core.Infrastru
cture
100+ 🌟  50+🍴 (в сумме с прежней не Core версией)
— MIT License ·
Commercial use  Modification  Distribution  Private use
— NuGet· Приятный бонус )
Код!
Внутри CQRS
Query
Command
Диаграмма
зависимостей
Схема запроса данных
Регистрация в IoC
Добавление метода API
1. Добавляем метод в нужный Controller · Или новый
контроллер
2. Добавляем новый класс Criterion/Context
3. Добавляем новый класс Query/Command
4. Добавляем новый DTO · При необходимости
Бонусы
— Миграции схемы и данных: MS SQL / PostgreSQL
— Swagger
— Логирование
— SQL: Dapper + QueryObject
— JWT-Bearer авторизация
— Перехват ошибок
— Точки расширения
— Rabbit
— NuGet
Полезные ссылки
— Command and Query Responsibility Segregation
(CQRS) на практике·
http://blog.byndyu.ru/2014/07/command-and-query-
responsibility.html
— Бизнес-гибкость через микросервисную
архитектуру ·
https://www.slideshare.net/AlexanderByndyu/ss-73574376
— Developing Microservices with Aggregates ·
https://www.slideshare.net/SpringCentral/developing-
microservices-with-aggregates ·
https://www.youtube.com/watch?v=7kX3fs0pWwc
— Инфраструктура для .NET Core проектов·
https://www.youtube.com/watch?v=TsSPWs5SKSA
Спасибо!
Буду рад ответить на ваши вопросы
iruslansafin@gmail.com

More Related Content

Similar to Пример построения CQRS-архитектуры

NEX Integrator - разработка качественного программного обеспечения
NEX Integrator - разработка качественного программного обеспеченияNEX Integrator - разработка качественного программного обеспечения
NEX Integrator - разработка качественного программного обеспеченияKateryna Odarchenko
 
Roles happy dev-2013-tsepkov
Roles happy dev-2013-tsepkovRoles happy dev-2013-tsepkov
Roles happy dev-2013-tsepkovMaxim Tsepkov
 
Потоковая обработка данных и Микросервисная архитектура
Потоковая обработка данных и Микросервисная архитектураПотоковая обработка данных и Микросервисная архитектура
Потоковая обработка данных и Микросервисная архитектураVyacheslav Benedichuk
 
Аналитика в ЦОД
Аналитика в ЦОДАналитика в ЦОД
Аналитика в ЦОДCisco Russia
 
Шаблоны проектирования нагрузочных скриптов
Шаблоны проектирования нагрузочных скриптовШаблоны проектирования нагрузочных скриптов
Шаблоны проектирования нагрузочных скриптовSQALab
 
владивосток форум Isc community
владивосток форум Isc communityвладивосток форум Isc community
владивосток форум Isc communityElena Ometova
 
Ubiq Mobile: Skolkovo
Ubiq Mobile: SkolkovoUbiq Mobile: Skolkovo
Ubiq Mobile: SkolkovoYuri Gubanov
 
Разработка профессионального стандарта "Специалист по интеграции облачных при...
Разработка профессионального стандарта "Специалист по интеграции облачных при...Разработка профессионального стандарта "Специалист по интеграции облачных при...
Разработка профессионального стандарта "Специалист по интеграции облачных при...Сергей Лебедев
 
Как совместить лучшее из водопадных и аджайл подходов в ИТ проектах
Как совместить лучшее из водопадных и аджайл подходов в ИТ проектахКак совместить лучшее из водопадных и аджайл подходов в ИТ проектах
Как совместить лучшее из водопадных и аджайл подходов в ИТ проектахDanil Dintsis, Ph. D., PgMP
 
Вадим Макшов "SaaS: вільні платформи і технології"
Вадим Макшов "SaaS: вільні платформи і технології"Вадим Макшов "SaaS: вільні платформи і технології"
Вадим Макшов "SaaS: вільні платформи і технології"Lviv Startup Club
 
Cisco ScanSafe. Защита web-доступа как услуга “из облака”
Cisco ScanSafe. Защита web-доступа как услуга “из облака”Cisco ScanSafe. Защита web-доступа как услуга “из облака”
Cisco ScanSafe. Защита web-доступа как услуга “из облака”Cisco Russia
 
Подходы к мониторингу информационных систем
Подходы к мониторингу информационных системПодходы к мониторингу информационных систем
Подходы к мониторингу информационных системCisco Russia
 
Контроль услуг и приложений в центрах обработки данных нового поколения
Контроль услуг и приложений в центрах обработки данных нового поколенияКонтроль услуг и приложений в центрах обработки данных нового поколения
Контроль услуг и приложений в центрах обработки данных нового поколенияCisco Russia
 
PlexGrid. Распределенные вычислительные системы
PlexGrid. Распределенные вычислительные системыPlexGrid. Распределенные вычислительные системы
PlexGrid. Распределенные вычислительные системыstartuptour
 
Миграция БД - практический_подход с инструментами Embarcadero
Миграция БД - практический_подход с инструментами EmbarcaderoМиграция БД - практический_подход с инструментами Embarcadero
Миграция БД - практический_подход с инструментами EmbarcaderoAndrew Sovtsov
 
Руководство MS по проектированию архитектуры приложений
Руководство MS по проектированию архитектуры приложенийРуководство MS по проектированию архитектуры приложений
Руководство MS по проектированию архитектуры приложенийgovbooks
 
Переход от монолитной архитектуры к распределенной
Переход от монолитной архитектуры к распределеннойПереход от монолитной архитектуры к распределенной
Переход от монолитной архитектуры к распределеннойAlexander Byndyu
 
Отчет «Центра прикладных исследований компьютерных сетей» на Совете фонда "Ск...
Отчет «Центра прикладных исследований компьютерных сетей» на Совете фонда "Ск...Отчет «Центра прикладных исследований компьютерных сетей» на Совете фонда "Ск...
Отчет «Центра прикладных исследований компьютерных сетей» на Совете фонда "Ск...ARCCN
 

Similar to Пример построения CQRS-архитектуры (20)

Градус эффективности цод
Градус эффективности цодГрадус эффективности цод
Градус эффективности цод
 
NEX Integrator - разработка качественного программного обеспечения
NEX Integrator - разработка качественного программного обеспеченияNEX Integrator - разработка качественного программного обеспечения
NEX Integrator - разработка качественного программного обеспечения
 
Roles happy dev-2013-tsepkov
Roles happy dev-2013-tsepkovRoles happy dev-2013-tsepkov
Roles happy dev-2013-tsepkov
 
Потоковая обработка данных и Микросервисная архитектура
Потоковая обработка данных и Микросервисная архитектураПотоковая обработка данных и Микросервисная архитектура
Потоковая обработка данных и Микросервисная архитектура
 
Аналитика в ЦОД
Аналитика в ЦОДАналитика в ЦОД
Аналитика в ЦОД
 
Шаблоны проектирования нагрузочных скриптов
Шаблоны проектирования нагрузочных скриптовШаблоны проектирования нагрузочных скриптов
Шаблоны проектирования нагрузочных скриптов
 
владивосток форум Isc community
владивосток форум Isc communityвладивосток форум Isc community
владивосток форум Isc community
 
Ubiq Mobile: Skolkovo
Ubiq Mobile: SkolkovoUbiq Mobile: Skolkovo
Ubiq Mobile: Skolkovo
 
Разработка профессионального стандарта "Специалист по интеграции облачных при...
Разработка профессионального стандарта "Специалист по интеграции облачных при...Разработка профессионального стандарта "Специалист по интеграции облачных при...
Разработка профессионального стандарта "Специалист по интеграции облачных при...
 
Как совместить лучшее из водопадных и аджайл подходов в ИТ проектах
Как совместить лучшее из водопадных и аджайл подходов в ИТ проектахКак совместить лучшее из водопадных и аджайл подходов в ИТ проектах
Как совместить лучшее из водопадных и аджайл подходов в ИТ проектах
 
Вадим Макшов "SaaS: вільні платформи і технології"
Вадим Макшов "SaaS: вільні платформи і технології"Вадим Макшов "SaaS: вільні платформи і технології"
Вадим Макшов "SaaS: вільні платформи і технології"
 
Cisco ScanSafe. Защита web-доступа как услуга “из облака”
Cisco ScanSafe. Защита web-доступа как услуга “из облака”Cisco ScanSafe. Защита web-доступа как услуга “из облака”
Cisco ScanSafe. Защита web-доступа как услуга “из облака”
 
Подходы к мониторингу информационных систем
Подходы к мониторингу информационных системПодходы к мониторингу информационных систем
Подходы к мониторингу информационных систем
 
Artsofte for b2 b
Artsofte for b2 b Artsofte for b2 b
Artsofte for b2 b
 
Контроль услуг и приложений в центрах обработки данных нового поколения
Контроль услуг и приложений в центрах обработки данных нового поколенияКонтроль услуг и приложений в центрах обработки данных нового поколения
Контроль услуг и приложений в центрах обработки данных нового поколения
 
PlexGrid. Распределенные вычислительные системы
PlexGrid. Распределенные вычислительные системыPlexGrid. Распределенные вычислительные системы
PlexGrid. Распределенные вычислительные системы
 
Миграция БД - практический_подход с инструментами Embarcadero
Миграция БД - практический_подход с инструментами EmbarcaderoМиграция БД - практический_подход с инструментами Embarcadero
Миграция БД - практический_подход с инструментами Embarcadero
 
Руководство MS по проектированию архитектуры приложений
Руководство MS по проектированию архитектуры приложенийРуководство MS по проектированию архитектуры приложений
Руководство MS по проектированию архитектуры приложений
 
Переход от монолитной архитектуры к распределенной
Переход от монолитной архитектуры к распределеннойПереход от монолитной архитектуры к распределенной
Переход от монолитной архитектуры к распределенной
 
Отчет «Центра прикладных исследований компьютерных сетей» на Совете фонда "Ск...
Отчет «Центра прикладных исследований компьютерных сетей» на Совете фонда "Ск...Отчет «Центра прикладных исследований компьютерных сетей» на Совете фонда "Ск...
Отчет «Центра прикладных исследований компьютерных сетей» на Совете фонда "Ск...
 

Пример построения CQRS-архитектуры

Editor's Notes

  1. Давно зашел на Java-конференцию Архитектура не зависит от языка .NET Core Предложил выступить Николай