Основы архитектуры ПО
Узнаете, что такое архитектура ПО и что должен уметь грамотный специалист. Разберётесь в важных аспектах архитектуры ПО и поймёте, как включить архитектурное мышление.
Архитектурные стили
Познакомитесь с фундаментальными стилями и шаблонами. Научитесь выбирать между монолитной и распределённой архитектурой в зависимости от бизнес-потребностей.
Распределённая архитектура
Изучите особенности распределённой архитектуры и познакомитесь с Service-Based Architecture, Space-Based Architecture, EDA и микросервисной архитектурой. Поймёте, как выстроить разработку микросервисов, и научитесь выбирать подходящий шаблон построения распределённой архитектуры в зависимости от задачи.
Функциональная декомпозиция
Научитесь выделять операции над системой и сервисы, которые участвуют в архитектуре, — и сможете их связывать. Узнаете, как декомпозировать задачи по бизнес-возможностям и доменной области. Поймёте, как определить верхнеуровневый API.
Нефункциональные требования
Научитесь выявлять нефункциональные требования к проекту и на их основе разделять систему на компоненты.
Монолит и его рефакторинг
Познакомитесь с классификацией интеграции приложений и разберётесь в фундаментальных проблемах интеграции между компонентами. Изучите подходы к интеграции в распредёленной архитектуре и научитесь проектировать системы с учётом особенностей каждого подхода.
Проектирование API
Подробно разберётесь в протоколе HTTP и познакомитесь с архитектурным стилем REST. Изучите стандарт OpenAPI и сможете проектировать API с его помощью.
API Gateway
Узнаете, какие проблемы решает паттерн API Gateway и какие у него функции: маршрутизация, балансировка, кеширование и другие. Сможете использовать возможности паттерна при проектировании систем.
Security
Познакомитесь с открытым проектом обеспечения безопасности веб-приложений OWASP, научитесь работать с аутентификацией, SSL и TLS. Сможете учитывать вопросы безопасности при проектировании веб-приложений.
Рефакторинг монолита
Узнаете, с какими трудностями столкнётесь при рефакторинге и как их преодолеть. Научитесь выделять части системы для переноса в микросервисы и познакомитесь с подходами к интеграции сервисов и монолита.
Управление транзакциями. «Сага»
Изучите транзакции в микросервесной архитектуре и познакомитесь с паттерном «Сага». Научитесь проектировать этот паттерн для разных задач по управлению транзакциями.
EDA: Event-source и CQRS
Познакомитесь с архитектурным стилем EDA, его плюсами и минусами. Узнаете, что такое события и инверсия зависимостей. Поймёте, как и когда применять подходы из Event Sourcing и паттерна CQRS.
Service Discovery & Configuration
Узнаете, как решить проблемы обнаружения сервисов и централизованного управления конфигурациями, на примере фреймворка Spring.
Observability
Изучите проблемы отладки системы в распределённой архитектуре и узнаете, что такое Observability и Monitoring. Познакомитесь с тремя столпами Observability — Logs, Metrics и Tracing. Узнаете, как наделить систему свойством наблюдаемости, научитесь собирать метрики, встраивать трассировку и аудировать действия пользователей.
Инфраструктура и среда исполнения
Разберётесь в инфраструктурных решениях для запуска приложений, познакомитесь с инструментами для контейнеризации и оркестрации. Сможете подобрать среду исполнения исходя из бизнес-задачи.
Cloud Native Application
Поймёте, какими свойствами должно обладать cloud-native-приложение. Получите чек-лист соответствия приложения стандартам cloud-native.
Soft skills и развитие карьеры
Научитесь эффектно презентовать архитектурные решения и работать в команде. Получите чек-лист с основными задачами архитектора и список ресурсов для саморазвития. Поймёте, как построить успешную карьеру архитектора ПО.
Дипломный проект. Архитектура программного обеспечения
Вы получите бриф на разработку архитектуры будущего ПО. Определите подходящий архитектурный стиль, подберёте инструменты для разработки и пропишете готовую архитектуру приложения.