EGround
Редактор
- Сообщения
- 24.307
- Реакции
- 127
Анализ систем [Тариф — Аптечка] [Школа сильных программистов] [Давыдов А, Зарудный Т, Онысько М, Борщев Ф]
Курс о том, как проектировать системы. Новые — чтобы не переделывать, старые — чтобы разобрать на части и ускорить разработку.
Научим распиливать монолиты, обоснованно выбирая технологии и архитектурные стили, оставляя после себя понятную документацию.
Урок 1. Работа с требованиями, разделение системы на элементы
Когда мы только начинаем проектировать системы, обычно нет ни внятных требований, ни времени на проектирование. После урока будет понятно, что даже в таких условиях можно собрать что-то рабочее.
Также в уроке разбиваем два антипаттерна — разбивание бизнес-логики по техническим шагам или по сущностям (entity service).
Ключевые концепции и термины:
- Работа с требованиями
- Event Storming
- Модель данных
- Базовое сравнение микросервисов и монолитов
- Система, форма и функция системы
Урок 2. Стратегический анализ бизнеса и архитектурные стили
Программисты склонны принимать решения вокруг технологий, а не устройства бизнеса. Требования обычно этому не препятствуют. В уроке чиним это: учимся проектировать системы на основе стратегического анализа бизнеса, подробнее изучаем распределенные и монолитные архитектурные стили.
Ключевые концепции и термины:
- Strategic DDD, subdomains
- Coupling & cohesion, temporal coupling, local & global complexity
- Quality attributes/non functional requirements/architecture characteristics
- Поиск характеристик и перевод бизнес-терминов в характеристики
- Циклы жизни систем
Урок 3. Внешние ограничения и документация
Добавляем внешние ограничения: комплаенс, географические ограничения, количество инвестиций, общий уровень разработчиков. В уроке определяем и приоритизируем их.
Научимся не только принимать решения, но и описывать их так, чтобы не терять контекст, в котором решение было принято. Это позволит быстрее онбордить новых участников команды.
Изучим новые архитектурные стили: microkernel, pipeline, event-driven (привет, попуги!).
Ключевые концепции и термины:
- Ограничения системы
- Выбор вида БД в зависимости от характеристик
- Выбор вида коммуникаций и брокера для событий
- Fitness function
Урок 4. Распиливаем монолит
Учимся рефакторить сложные системы: добавлять новую функциональность, выносить не подходящую по характеристикам, объединять сервисы, переписывать существующие сервисы и избавляться от антипаттернов вроде entity-сервисов.
Ключевые концепции и термины:
- Добавление новой функциональности в отдельных сервисах
- Объединение сервисов
- Вынос функциональности из монолита в сервис
- Strangler Fig Application, Volatility Based Decomposition, Tactical Forking, Component-Based Decomposition
Урок 5. Итоги и дальнейшие шаги
Цель: подвести общие итоги и обсудить необходимые шаги для дальнейшей работы. Разобраться, как описывать систему. Спланировать этап развития собственных навыков после курса и повторить концепции, пройденные в курсе.
Ключевые концепции и термины:
- Всё, что в курсе было
- 4+1, C4, arc42, iso42010
Тариф — Аптечка
Стоимость 25000
Материал «Анализ систем [Тариф — Аптечка] [Школа сильных программистов] [Давыдов А, Зарудный Т, Онысько М, Борщев Ф]», возможно, скоро появится на EGROUND.
Воспользуйтесь поиском, может быть, он уже опубликован.