Открыто

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

Тема в разделе "Курсы по программированию", создана пользователем Топикстартер, 4 окт 2025.

Основной список: 12 участников

  1. 4 окт 2025
    #1
    Топикстартер
    Топикстартер ЧКЧлен клуба

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

    y112738T.png

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

    1. Magenta001
      Magenta001 участвует.
      22 дек 2025
    2. Teloriel
      Teloriel участвует.
      19 дек 2025
    3. Noperapon4ik
      Noperapon4ik участвует.
      19 дек 2025
    4. skladchik.com
      В складчине участвует 10 человек(а).
      19 дек 2025