Учебный центр IBS
ARC-004 Шаблоны проектирования приложений масштаба предприятия
Для кого: Архитектор программного обеспечения • Мидл Мидл
Начало: По факту набора потока
Длительность: 1 неделя
Улучшаемые навыки:
Active RecordСертификатОнлайн
Описание курса
Данный учебный курс по разработке корпоративных приложений содержит подробные описания основных архитектурных стилей, а также знакомит с их выбором на основе желаемых атрибутов качества. Рассматриваются конкретные типовые решения (шаблоны) для различных уровней абстракции системы, даются подробные сведения о сфере их использования и о некоторых нюансах реализации.
Модуль 1
- Задачи курса, знакомство;
- Введение в архитектуру, ее задачи и артефакты;
- Основные принципы построения архитектуры и связь с бизнес-целями;
- Каталоги шаблонов проектирования.
Модуль 2
- Архитектурные стили и шаблоны, в чем разница и каким целям служат;
- Рассмотрение основных архитектурных стилей (8 базовых + вариации). Предпосылки становления, особенности работы, влияние бизнес-целей на выбор и обоснование выбора. Рассматриваются плюсы и минусы реализации, возможности миграции с одного стиля на другой в зависимости от бизнес-целей и роста потребностей бизнеса.
Модуль 3
- Базовые шаблоны для организации внутренней логики модулей\подсистем. Рассмотренные шаблоны позволяют поднять уровень абстракции описания внутренней логики модулей системы. Инкапсуляция логики правильными способами позволит уменьшить вероятность ошибок и позволит более полно раскрыть потенциал объектно-ориентированного подхода разработки;
- Среди рассмотренных шаблонов будут такие как: Measurement, Specification, NullObject, Range и другие.
Модуль 4
- Рассматриваются 3 базовых подхода к организации доменной логики, а также принципы использования в зависимости от роли модуля в системе;
- Обсуждаются принципиальные шаблоны реализации сложной доменной логики. Введение в стратегический и тактический дизайн доменной логики, работа с агрегатами, и как обозначить первичные границы ограниченных контекстов;
- Среди рассмотренных шаблонов будут такие как: Aggregate, Actor Model, Active Record, Rich/Anemic подходы к дизайну доменной логики.
Модуль 5
- Принципы организации доступа к источникам данных, организация маппинга данных в зависимости от контекста, как учитывать миграцию данных от версии к версии;
- Как организовать согласованное сохранение разнотипных данных с помощью шаблона UnitOfWork. Особенности реализации для реляционных баз данных и не только. Возможность применения для сложных доменных процессов;
- Особенности сохранения сложных иерархий в хранилище данных, плюсы и минусы различных вариантов структур;
- Работа с ключами. Рассматриваются стратегии создания ключей, форматы, плюсы и минусы подходов в зависимости от контекста окружения.
Модуль 6
- В модуле рассматриваются основные свойства кеширования и пулинга ресурсов. Когда и что должно использоваться, плюсы и минусы подходов. Обсуждаются стратегии кеширования, особенности реализации для локального использования и для распределенных систем.
Модуль 7
- Обсуждение основных классов коммуникационных сообщений (3), особенности применения, правила составления. Освещаются сложности коммуникации и зависимостей сервисов, при неправильном использовании классов сообщений;
- Рассматриваются особенности распределенных транзакций, использование шаблона Saga, сложности и назначение шаблона. Как обеспечить безопасную рассылку сообщений в результате выполнения сложной транзакции.
Модуль 8
- Обсуждение основных технических проблем приложений в продуктовом окружении, и как с ними бороться. Современные системы обычно представлены набором распределенных сервисов и источников данных, все они могут рано или поздно быть недоступны по разным причинам, зачастую вызванных самими разработчиками – эти причины рассматриваются в модуле. Естественно, для многих анти-паттернов существуют решения как их убрать или минимизировать эффекты. Слушатели также с ними ознакомятся.
Модуль 9
- Подведение итогов, сессия вопросов и ответов.
Отзывы о курсе
Еще курсы
Бэкенд разработчик264Фулстек разработчик157Фронтенд разработчик138Веб-разработчик120Разработчик игр90Разработчик мобильных приложений67Десктоп разработчик35Архитектор программного обеспечения30Инженер встраиваемых систем25Разработчик баз данных21Программист 1С21Системный инженер8HTML-верстальщик6Архитектор баз данных3
Все курсы в специализации