2. Руслан Сафин
— Технический директор в byndyusoft.com
— Отвечаю за развитие культуры разработки в компании
— Организую процессы старта и разработки проектов как внешний
консультант
— Неспешно OpenSource’ю github.com/razonrus
— 10+ лет опыта коммерческой разработки на .NET ;)
— Играю в футбол и в шахматы
9. Требования к архитектуре
каждого из µ-сервисов
— Легковесность
добавляем/обновляем µ-сервисы много и быстро
— Масштабируемость
µ-сервис может быть запущен в любом количестве
экземпляров/потоков
— Отказоустойчивость
µ-сервис готов к неполадкам и отказам систем
— Многопоточный неблокирующий доступ к данным
нагрузка на код µ-сервиса выше, чем в случае того же кода
в монолите
15. CQRS
— Легковесность
соблюдение SRP позволяет быстро вносить изменения в
логику
— Масштабируемость
разделение чтения и записи даёт гибкость в
масштабировании, настройках и оптимизации доступа к
данным
— Отказоустойчивость
разделение на уровне приложений минимизирует потери от
неполадок
— Многопоточный неблокирующий доступ к данным
архитектура приложения даёт меньше шансов выстрелить
себе в ногу
25. Добавление метода API
1. Добавляем метод в нужный Controller · Или новый
контроллер
2. Добавляем новый класс Criterion/Context
3. Добавляем новый класс Query/Command
4. Добавляем новый DTO · При необходимости
26. Бонусы
— Миграции схемы и данных: MS SQL / PostgreSQL
— Swagger
— Логирование
— SQL: Dapper + QueryObject
— JWT-Bearer авторизация
— Перехват ошибок
— Точки расширения
— Rabbit
— NuGet
27. Полезные ссылки
— 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