Онлайн-интенсив по Python 24–26 июня
Close
Подписка на новости Слёрм
Должность
«Другая» должность
«Я согласен(на) с Политикой Конфиденциальности Слёрм и предоставляю Согласие на обработку персональных данных»
Каталог > Архитектура приложений

Архитектура приложений: пиши как разработчик, думай как архитектор

Когда
Формат
Видеокурс
Сентябрь'22
Продолжительность
3 месяца
Курс для разработчиков и техлидов. Рекомендован к прохождению командой или индивидуально.
Почему важна архитектура приложений
Архитектура приложений — это искусство проектировать и создавать масштабные программные системы.

Изначально приложения создавали без проектирования. Это казалось удобным: никаких издержек, связанных с планированием, и ускоренное прототипирование.

Но по мере развития приложения усложнялись, теряли гибкость и управляемость, а каждое новое изменение обходилось всё дороже.


Правильно выбранная архитектура означает выгоду
— приложение с такой архитектурой легче расширять, изменять, тестировать, отлаживать и понимать.
1
2
3
4
Что даёт архитектура приложений?
Благодаря правильно выбранной архитектуре вы можете:
повышать скорость разработки даже сложного приложения
менять структуру даже в старых версиях приложения
гибко изменять отдельные блоки приложения
упрощать онбординг новых сотрудников
обеспечить бесшовную ротацию разработчиков между проектами
5
Польза курса для бизнеса
Отправляя сотрудников на наш курс, вы снизите долгосрочную дороговизну и сложность разработки. Даже одна идея по архитектуре внедренная по итогу курса, может окупить в несколько раз стоимость самого курса.

У курса нет аналогов на рынке, которые бы так подробно раскрывали все грани архитектуры в проектах и погружали в детали, основанные на реальных рабочих кейсах.
Масштабируемость:
время на разработку и дополнение уменьшается. Хорошая архитектура позволяет направить разработку в несколько параллельных потоков
Взаимопонимание в команде:
после прохождения курса сложится единое понимание архитектуры всей командой
Легкая ротация сотрудников:
решает вопрос уязвимости ввода/вывода сотрудников с проекта. Позволяет менять разработчиков безболезненно
Как проходит обучение
Участники курса обучаются в онлайн формате с выполнением лабораторных работ для закрепления материала. По самым важным заданиям будет ревью. Раз в неделю проходят встречи со спикером. Для участников курса будет создан закрытый чат — в нём учащиеся смогут задать вопросы и получить дополнительную помощь.
Программа
Первый модуль: введение в архитектуру приложений

Данный модуль будет доступен бесплатно, чтобы интересующиеся могли познакомиться со спикером
Тема I. Введение в архитектуру приложений. Знакомство со спикером. Какие проблемы решает архитектура. Изменяемость как ключевое качество системы. Эволюционирующая архитектура. Задачи, цели и методы архитектора. Hard skills, soft skills, обучение команды. Определение сложности и управление сложностью. Архитектура, Функциональность и их баланс. Обзор программы курса.

Тема II. Изоляция как средство контроля сложности. Спагетти-код. Модульность. Связанность (coupling). Статическое связывание, динамическое связывание. Компоненты и их взаимодействие. Компонент как самостоятельная сущность. Проектирование слабосвязанных компонентов. Тестирование компонентов. MVC как пример модульного паттерна. Причины изменений, изоляция по принципу причин изменений.
Второй модуль: ООП и паттерны проектирования

Продвинутые ООП. Паттерны проектирования в целом и паттерны модульности в первую очередь.
Тема I. ООП как средство архитектуры. Классы и методы. Объектный подход как метод изоляции. Интерфейсы и абстрактные классы. Проблемы наследования.

Тема II. Что такое паттерны проектирования и чем они помогают программисту. Преимущества для проектирования. Преимущества для командной разработки. Кустарное производство против промышленного. Виды паттернов: основные, порождающие, структурные, поведенческие. Применение паттернов на практике.

Третий модуль: Unified Modelling Language

Unified Modelling Language для решения задач архитектуры. Применяем UML для проектирования с использованием паттернов. Порождающие паттерны.
Тема I. Введение в UML, зачем нужен. UML как средство описания архитектуры. Диаграммы структур, диаграммы поведений (обзорно). Диаграммы структур глубже. Описываем паттерны из 2.2 при помощи UML.

Тема II. Паттерны проектирования II. Продолжаем рассматривать структурные паттерны. Добавляем порождающие паттерны. Builder, Abstract Factory, Singleton, Object Pool.

Четвертый модуль: объектно-ориентированный анализ

Требования, предметная область. Анализ предметной области с использованием объектно-ориентированного подхода. Анализ как инструмент архитектора. Изменяемость закладывается в самом начале.
Тема I. Основы объектно-ориентированного анализа. Предметная область. Stakeholders. «Everybody lies». Идентификация пользователей. User stories. Переход от user stories к моделям.

Тема II. Паттерны поведения. Command, Chain of responsibility, Iterator, Observer. Применение поведенческих паттернов на практике.
Пятый модуль: проектирование с использованием объектно-ориентированного анализа

Продолжаем ООАиП. Добавляем принципы проектирования обзорно. SOLID
Тема I. Проектирование с использованием ООА

Тема II. Введение в принципы проектирования: SOLID, DRY, KISS etc. Ответственность и распределение ответственности. Проектирование по ответственности.

Тема III. Проектирование компонент, открытых для расширения, но закрытых для изменения
Шестой модуль: инверсия контроля

Инверсия контроля и изоляция. Сегрегация интерфейсов.
Тема I. Инверсия контроля, внедрение зависимостей, интерфейсы, Dependency Injection Container. DI Container vs Singleton. Interface Segregation Principle, Dependency Inversion Principle, Liskov Substitution Principle. [SOLID]

Тема II. Association - Delegation - Composition - Aggregation. Delegation over Inheritance.

Тема III. Трёхуровневая архитектура, гексагональная архитектура
Седьмой модуль: эволюционная архитектура

Freeze tests, refactoring, black-box testing (API), эволюция, внесение изменений. Миграции БД. Changes bottle-necks. Почему одно и то же изменение иногда требует один день, а иногда один месяц.
Тема I. Фриз-тесты. Рефакторинг. Миграция БД

Тема II. CI/CD кратко
Восьмой модуль: управление проектом с точки зрения архитектора

Soft skills. Управление техдолгом. Развитие команды. Баланс архитектуры и функциональности.
Тема I. Баланс архитектуры и функциональности. Работа с руководством. Управление техдолгом.

Тема II. Работа с командой. Курс по soft-skills. Менторство. Персональное развитие. Курс по алгоритмам.

Тема III. Что не вошло в курс. Коротко о распределённых системах и их преимуществах.
Стоимость
120 000 ₽
Записаться
Оплатить от юр.лица
Должность
Свой вариант
«Я согласен(на) с Политикой Конфиденциальности Слёрм и предоставляю Согласие на обработку персональных данных»