Що нового?

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

Інформація про покупку
Тип покупки: Складчина
Ціна: 23100 ГРН
Учасників: 0 з 14
Організатор: Відсутній
Статус: Набір учасників
Внесок: 1716 ГРН
0%
Основний список
Резервний список

Gadzhi

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



Чего ждать, а чего не стоит
Ибрагим вместе с Котом-критиком получают задачу от бизнеса спроектировать новую систему.
По пути наступают на разные грабли, а Антон помогает с ними разобраться.
  • Не говорим о ГОСТах, 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%.
https://tough-dev.school/system-analysis
 
Угорі