Фёдор Борщёв, Антон Давыдов «Анализ систем. Тариф Аптечка» — Школа сильных программистов слив скачать
- Добавлено: 2023-04-18
- Автор курса: Фёдор Борщёв, Антон Давыдов
- Сайт автора: Перейти
- Доступ: Облако Mail / Yandex / Google
- Скачать: PC / Smartphone / Tablet
Научим распиливать монолиты, обоснованно выбирая технологии и архитектурные стили, оставляя после себя понятную документацию.
Вы спроектируете архитектуру проекта на основе собранных требований. Сделаете модель данных, опишете коммуникации, определите субдомены и архитектурные характеристики проекта. Всё это будет эволюционировать параллельно с новыми знаниями с курса.
Программа курса:
Урок 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
Ученик получит чеклист работы над системой, дальнейшие шаги по самостоятельному изучению и описание примеров того, как можно описывать архитектуру.
Купить другие курсы и тренинги от Фёдора Борщёва, Антона Давыдова
Рекомендуемые курсы
Курс — первая помощь по трудоустройству за рубежом. Мы не будем месяцами жевать теорию, а за 3 недели поможем сделать первые шаги. Вы проапдейтите профиль в линкедине и резюме, составите список компаний, в которых хотите работать. На тарифах «В тусовке» и «VIP» потренируетесь проходить
Данный онлайн-курс предусматривает изучение механизмов платформы «1С:Предприятие», которые предназначены для решения задач бухгалтерского учета. Курс предназначен для тех, кто уже имеет определенные навыки конфигурирования и программирования в системе «1С:Предприятие», а также для опытных
Описание: Чему вы научитесь Анализ данныx на Python Google Colab Сводные таблицы Exploratory Data Analysis Требования Не требует никаких предварительных знаний Описание Всем привет! Меня зовут Глеб Михайлов, я аналитик и дата саентист с 10-ти летним стажем. В этом мастер-классе я показываю свои
Системный аналитик — это специалист, который изучает бизнес и определяет, как можно сделать его эффективнее с помощью внедрения информационных систем. Он помогает оптимизировать и автоматизировать работу компании и её подразделений. Этот специалист разбирается в менеджменте и информационных
[Специалист] Microsoft Excel 2019/2016. Уровень 3. Анализ и визуализация данных ( Лидия Максимова) Обучение проходит на последней версии Excel 2019! По роду своей деятельности Вы часто сталкиваетесь с задачами анализа и прогнозирования в Excel и являетесь опытным, уверенным пользователем этой
Анализ данных на языке SQL - NEW (2020) Язык SQL –самый мощный инструмент для обработки данных, придуманный человеком. Этот простой и выразительный язык запросов поддерживается всеми современными базами данных (в том числе Microsoft, Oracle, IBM) и инструментами анализа и программирования (в том
Больше курсов по этой теме
Цель нашего курса — помочь опытным аналитикам расширить свои компетенции и задать правильное направление для дальнейшего развития в профессии. Полученный практический опыт позволит углубить знания в области продуктовой аналитики и научиться подбирать правильные инструменты для решения задач в самых
Фреймворк Laravel - самый популярный и просто классный PHP-фреймворк. Для участия необходимо понимание базовых тем ООП. Программа: 1 Установка и начало работы Базовая архитектура Laravel Жизненный цикл запроса Request и Response объекты Создание первой страницы Основы работы с artisan 2 Работа с
Последнее обновление: 04.2023 Быстрый красивый сайт на Tilda без шаблонов с нуля Создайте модный сайт за 1 день без программирования и творческий способностей, копируя лучше решения на рынке Чему вы научитесь Созданий модного легдинга за 4-7 часов Создавать сайты для бизнесов, курсов, экспертов и
[Udemy] Node.js - Полный Курс по Node.js (Богдан Стащук) Описание Курс по Node.js предназначен для программистов, желающих научиться создавать приложения на jаvascript с использованием платформы Node.js. Node.js - это среда выполнения jаvascript, которая используется на серверной стороне и
[Udemy] Мастер ChatGPT: полный курс OpenAI ChatGPT (Faisal Zamir) Хотите получить ПОЛНЫЕ преимущества ChatGPT? Тогда вы находитесь в правильном месте! В этом курсе вы полностью узнаете, как можно полностью использовать ChatGPT для своего бизнеса, обучения, преподавания, обучения любым навыкам и
[Self-Learning] SQL для начинающих (Виталий Трунин) Изучайте SQL по авторской методике, не привязываясь к СУБД. После прохождения данного курса Вы сможете писать SQL запросы и в MySQL, и в PosrgreSQL, и в Microsoft SQL Server Описание курса Здравствуйте, уважаемые посетители! Данный курс рассчитан
Отзывы о курсе «Анализ систем. Тариф Аптечка» от Фёдора Борщёва, Антона Давыдова