Скачать Анализ Систем [Тариф Аптечка] [Федор Борщев, Антон Давыдов]

Джокер

Администратор
Регистрация
1 Янв 2015
Сообщения
133.849
Реакции
76.347
Складчина: Анализ Систем [Тариф Аптечка] [Федор Борщев, Антон Давыдов]



Чего ждать, а чего не стоит
Ибрагим вместе с Котом-критиком получают задачу от бизнеса спроектировать новую систему.
По пути наступают на разные грабли, а Антон помогает с ними разобраться.

Не говорим о ГОСТах, ISO и других стандартах. Хоть они будут использоваться в качестве справочного материала, курс — не про сертификацию на позицию solution architect.

Говорим о концепциях и смыслах, которые так или иначе прослеживаются в каждом из стандартов. Документы всегда можно нагуглить, а вот понять логику важнее. И ещё сложнее собрать общую картинку.

Не говорим о дизайне систем в ключе выбора между технологиями для кеширования, месседж-брокерами или вариантами развёртывания k8s.

Учим не выбирать технологии (хотя про это тоже есть), а определять, что вообще надо сделать бизнесу, чтобы заработать больше денег. А для выбора технологий есть специализированные курсы вроде сертификации aws.
Программа курса «Анализ систем»
Урок 1. Kitten: разбиваем систему на элементы, печём первый блин
Урок 2. House Cat: Выбираем архитектурный стиль на основе стратегического анализа бизнеса
Урок 3. Tomcat: Выбираем коммуникации, брокеры и базы данных, документируем решения
Урок 4. Alley Cat: Распиливаем монолит
Урок 5. Итоги и дальнейшие шаги


Спойлер: Подробная программа
Урок 1. Kitten: разбиваем систему на элементы, печём первый блин

Цель: Научиться вынимать требования из бизнеса и выбирать элементы системы на основе этих требований.
Узнать первые два вида связности — по данным и по вызовам.
Познакомиться с системой, которую будем разбирать во время курса.
Какую проблему решаем?

Когда мы только начинаем проектировать системы, обычно нет ни внятных требований, ни времени на проектирование.
После урока будет понятно, что даже в таких условиях можно собрать что-то рабочее.
Так же в уроке разбиваем два антипаттерна — разбивание бизнес-логики по техническим шагам (нужен пример) или по сущностям (entity service)
Ключевые концепции и термины:

Работа с требованиями
Event Storming
Модель данных
Базовое сравнение микросервисов и монолитов
система, форма и функция системы
На выходе:

Спроектируем первую версию системы.
Для этого рассмотрим две базовые модели: Event Storming и Модель данных.
Благодаря этим моделям, в будущем, будем улучшать систему с каждой новой итерацией.
Урок 2. House Cat: Выбираем архитектурный стиль на основе стратегического анализа бизнеса

Цель: Проанализировать полученную в первом уроке систему и найти её слабые места.
Разобраться в явных и неявных видах связанности, связать связанность и сложность системы.
Посмотреть на проект глазами бизнеса, чтобы избавиться от лишней связанности между элементами.
Определиться, какие характеристики важны для системы, найти их значения и выбрать один из базовых архитектурных стилей, основанных на найденных характеристиках.
Какую проблему решаем?

После первой итерации оказалось, что не были учтены неявные связи между найденными элементами, а сами элементы были найдены без понимания, какую проблему изначально решает бизнес.
При этом выбранная структура из первого урока оказалась невалидной, ибо мы не учли важные характеристики проекта.
Поэтому научимся искать характеристики и выбирать архитектурные стили, основываясь на полученных данных.
Ключевые концепции и термины:

strategy DDD, Core/Generic/Supporting subdomain, context mapping;
coupling & cohesion, temporal coupling, local & global complexity;
quality attributes / non functional requirements/architecture characteristics;
поиск характеристик и перевод бизнес-терминов в характеристики;
циклы жизни систем;
fitness functions;
layered, service-based, microservices architecture styles;
V-model.
На выходе:

Ученик научится смотреть на систему как на набор проблем, решения которых ему надо спроектировать.
Научится видеть связанность элементов не только явную, но и основанную на бизнесе и характеристиках.
Разберётся в том, какие характеристики существуют, как их найти и как с помощью характеристик выбрать нужный архитектурный стиль.
Разберём, почему описывать детальное решение для разработчиков не имеет никакого смысла и вместо этого лучше описать элементы, коммуникации и задать ограничения, в которых должна работать система.
Урок 3. Tomcat: Выбираем коммуникации, брокеры и базы данных, документируем решения

Цель: Определить целевую аудиторию, для которой мы делаем систему, благодаря этому собрать полные требования и полный набор характеристик.
Ввести внешние ограничения, благодаря чему система изменится.
На основе отличий в характеристиках ввести концепцию разделения на сервисы.
Разобраться, как выбирать паттерны, базы данных и способы коммуникаций.
А также научиться стандартизированно описывать принятые решения.
Какую проблему решаем?

В реализуемой системе заинтересован не только сферический бизнес в виде ПМ’а, но и разные виды пользователей: финотдел, внешние инвесторы, отделы разработки и другие.
Для того, чтобы полученное решение удовлетворяло всех заинтересованных, необходимо найти эти лица.
При этом важно понять, чей интерес важнее, чтобы работа над проектом не превратилась в хаос.
Кроме характеристик, существуют внешние ограничения, такие как законы, количество инвестиций, общий уровень инженеров и так далее. Важно подстраивать решение под эти ограничения, для этого научимся искать и приоритизировать ограничения.
Кроме выбора архитектурных стилей, набор ограничений и характеристик можно применять к выбору других технических решений, например баз данных, способов коммуникации, выбору брокера и паттернов.
Научимся не только принимать решения, но и описывать их так, чтобы не терять контекст, в котором решение было принято. Это позволит быстрее онбордить новых участников команды.
Ключевые концепции и термины:

stakeholders, stakeholders requirements;
ограничения системы;
microkernel, pipeline, event-driven architecture styles;
выбор вида БД в зависимости от характеристик;
выбор вида брокера в зависимости от характеристик;
выбор паттернов в зависимости от характеристик;
ADR.
На выходе:

Ученик научится искать заинтересованных в системе лиц, определять, что из требований заинтересованных лиц важно, а что нет.
Научится искать ограничения, которые влияют на итоговое решение, и выбирать нужные стили, паттерны, базы данных и любые другие технические решения, основываясь на полученных знаниях.
Научится описывать процесс принятия решения так, чтобы контекст не терялся.
Урок 4. Alley Cat: Распиливаем монолит

Цель: Попасть в ситуацию, когда уже есть готовая реализация проекта, который сделали «как смогли».
После анализа полученной системы привести всё в порядок, используя пять подходов: добавить новый функционал как отдельный сервис, объединить технические шаги в общий сервис, переписать существующий сервис, чтобы он удовлетворял характеристикам, вынести сервис из монолита и избавиться от энтити-сервиса.
Для каждой проблемы обсудить стратегии вывода в эксплуатацию и шаги для переписывания.
Какую проблему решаем?

Научиться рефакторить распределённые системы: добавлять новый функционал, выносить не подходящий по характеристикам, объединять сервисы, переписывать существующие сервисы и избавляться от энтити-сервисов.
Также обсудим, как планировать и следить за процессом эволюции системы.
Ключевые концепции и термины:

Entity services;
Strangler Fig Application.
На выходе:

Ученик получит практический опыт модернизации сервисных архитектур.
Получит один из способов наблюдения за процессом работы над системой, который можно применять не только для распила сервисов, но и в любой другой работе над системой.
Урок 5. Итоги и дальнейшие шаги

Цель: Подвести общие итоги и обсудить необходимые шаги для дальнейшей работы.
Разобраться, как описывать систему.
Спланировать этап развития собственных навыков после курса и повторить концепции, пройденные в курсе.
Какую проблему решаем?

Собрать все знания вместе. Научиться описывать архитектуру системы так, чтобы ей можно было пользоваться.
Ключевые концепции и термины:

всё, что в курсе было;
4+1, C4, arc42, iso42010.
На выходе:

Ученик получит чек-лист работы над системой, дальнейшие шаги по самостоятельному изучению и описание примеров того, как можно описывать архитектуру.


Цена со скидкой 34650 руб
Промокод AS5THOUGHTS до 5 октября, скидка 10%.




СКАЧАТЬ СЛИВЫ КУРСОВ