• TopKursy - РЕДКИЕ Удаленные КУРСЫ!

    Эксклюзивные материалы, недоступные на других источниках.

    Откройте доступ к уникальным знаниям прямо сейчас!

    Подробнее

Скоро! Анализ систем [Тариф — Аптечка] [Школа сильных программистов] [Давыдов А, Зарудный Т, Онысько М, Борщев Ф]

Статус
В этой теме нельзя размещать новые ответы.
EGround

EGround

Редактор
Сообщения
24.307
Реакции
127

Анализ систем [Тариф — Аптечка] [Школа сильных программистов] [Давыдов А, Зарудный Т, Онысько М, Борщев Ф]​


2024-06-10_21-33-58.jpg


Курс о том, как проектировать системы. Новые — чтобы не переделывать, старые — чтобы разобрать на части и ускорить разработку.

Научим распиливать монолиты, обоснованно выбирая технологии и архитектурные стили, оставляя после себя понятную документацию.

Урок 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.
Воспользуйтесь поиском, может быть, он уже опубликован.
 
Статус
В этой теме нельзя размещать новые ответы.

Похожие темы

Сверху Снизу