О чём курс
Данный учебный курс по разработке корпоративных приложений содержит подробные описания основных архитектурных стилей, а также рекомендации, как их выбрать на основе желаемых атрибутов качества. Рассматриваются конкретные типовые решения (шаблоны) для различных уровней абстракции системы, даются подробные сведения о сфере их использования и о некоторых нюансах реализации.
В курсе рассматриваются шаблоны различных уровней абстракции: модулей, приложений, системы – которые расширят ваш кругозор, помогут понять принципы построения и коммуникации средних и больших систем. Рассмотренные подходы могут быть применены как для распределенных, так и монолитных решений.
После освоения курса вы:
будете знать основные подходы к реализации бизнес-логики ИС,
научитесь идентифицировать типы подсистем для выбора наиболее подходящей стратегии реализации
разберетесь в компромиссах, на которые вы идете, выбирая тот или иной подход к построению ИС,
получите некоторые другие знания и навыки, необходимые для проектирования корпоративных приложений.
Цели
После завершения обучения слушатели смогут:
Разделять корпоративные приложения на слои
Знать основные подходы к организации бизнес-логики
Детально знать механизм объектно-реляционного отображения
Организовывать представление данных в Web с использованием системы MCV (модель-представление-контроллер)
Понимать принцип параллельной обработки заданий, охватывающих несколько системных транзакций
Проектировать интерфейс распределённого доступа к объектам
Целевая аудитория
Старшие разработчики
Начинающие архитекторы
Предварительная подготовка
Прохождение курса DEV-001 - Шаблоны проектирования.
Знание принципов объектно-ориентированного программирования.
Опыт работы с объектно-ориентированными языками от 1 года.
Базовое знание UML (курс REQ-001)
Для кого
Разработчик
Архитектор ПО
Улучшаемые навыки
Архитектурные стили
Доменная логика
Measurement
Specification
NullObject
Actor Model
Расписание курсов
Темы курса
01
Введение: (теория 1 ч)
Задачи курса, знакомство.
Введение в архитектуру, ее задачи и артефакты.
Основные принципы построения архитектуры и связь с бизнес-целями.
Каталоги шаблонов проектирования.
02
Архитектурные стили: (теория 4 ч + практика 1.5 ч)
Архитектурные стили и шаблоны, в чем разница и каким целям служат.
Рассмотрение основных архитектурных стилей (8 базовых + вариации).
Предпосылки становления, особенности работы, влияние бизнес-целей на выбор и обоснование выбора.
Рассматриваются плюсы и минусы реализации, возможности миграции с одного стиля на другой в зависимости от бизнес-целей и роста потребностей бизнеса.
03
Базовые шаблоны: (теория 1,5 ч + практика 1 ч)
Базовые шаблоны для организации внутренней логики модулей\подсистем.
Рассмотренные шаблоны позволяют поднять уровень абстракции описания внутренней логики модулей системы.
Инкапсуляция логики правильными способами позволит уменьшить вероятность ошибок и позволит более полно раскрыть потенциал объектно-ориентированного подхода разработки.
Среди рассмотренных шаблонов будут такие как: Measurement, Specification, NullObject, Range и другие.
04
Шаблоны доменной логики: (теория 3 ч + практика 1,5 ч)
Рассматриваются 3 базовых подхода к организации доменной логики, а также принципы использования в зависимости от роли модуля в системе.
Обсуждаются принципиальные шаблоны реализации сложной доменной логики.
Введение в стратегический и тактический дизайн доменной логики, работа с агрегатами, и как обозначить первичные границы ограниченных контекстов.
Среди рассмотренных шаблонов будут такие как: Aggregate, Actor Model, Active Record, Rich/Anemic подходы к дизайну доменной логики.
05
Архитектурные шаблоны доступа к данным: (теория 2 часа + практика 1,5 ч)
- Принципы организации доступа к источникам данных, организация маппинга данных в зависимости от контекста, как учитывать миграцию данных от версии к версии.
-
Как организовать согласованное сохранение разнотипных данных с помощью шаблона UnitOfWork. Особенности реализации для реляционных баз данных и не только. Возможность применения для сложных доменных процессов.
-
Особенности сохранения сложных иерархий в хранилище данных, плюсы и минусы различных вариантов структур.
-
Работа с ключами. Рассматриваются стратегии создания ключей, форматы, плюсы и минусы подходов в зависимости от контекста окружения.
06
Шаблоны управления ресурсами: (теория 2 часа + практика 1,5 ч)
В модуле рассматриваются основные свойства кеширования и пулинга ресурсов. Когда и что должно использоваться, плюсы и минусы подходов.
Обсуждаются стратегии кеширования, особенности реализации для локального использования и для распределенных систем.
07
Шаблоны коммуникации: (теория 1 час)
Обсуждение основных классов коммуникационных сообщений (3), особенности применения, правила составления.
Освещаются сложности коммуникации и зависимостей сервисов, при неправильном использовании классов сообщений.
Рассматриваются особенности распределенных транзакций, использование шаблона Saga, сложности и назначение шаблона.
Как обеспечить безопасную рассылку сообщений в результате выполнения сложной транзакции.
08
Шаблоны стабильности (теория 1 ч + практика 1 ч)
Обсуждение основных технических проблем приложений в продуктовом окружении, и как с ними бороться. Современные системы обычно представлены набором распределенных сервисов и источников данных, все они могут рано или поздно быть недоступны по разным причинам, зачастую вызванных самими разработчиками – эти причины рассматриваются в модуле.
Естественно, для многих анти-паттернов существуют решения как их убрать или минимизировать эффекты. Слушатели также с ними ознакомятся
Подведение итогов, сессия вопросов и ответов.
10
Всего: теория 16 ч (67%), практика 8 ч (33%)
Чему вы научитесь
01
Различать и применять основные шаблоны проектирования
02
Освоите архитектурные паттерны, подходящие для разработки приложений масштаба предприятия
03
Интегрировать шаблоны проектирования в бизнес-логику приложений
04
Освоите методы документирования и стандартизации использования шаблонов проектирования в проектах
05
Научитесь использовать шаблоны проектирования для оптимизации производительности приложений
Ведущий курса