О чём курс
Современный мир быстро меняется, а за ним и задачи бизнеса, что требует разработки гибких приложений. Один из способов достижения гибкости – уменьшение жестких зависимостей между частями системы. Для этого в распоряжении разработчика есть множество шаблонов и инструментов. Один из действенных подходов – инверсия зависимостей (Dependency Injection), которому и посвящен тренинг.
Однако мало иметь в распоряжении хороший инструмент, важно понимать, как и когда его использовать. Существует огромное количество примеров, когда шаблоны и инструменты используются неверно и вместо пользы приносят неудобства в сопровождении программных комплексов. В рамках тренинга будут показаны такие примеры и принципы проектирования систем, что чтение кода, тестирование и изменение не будут трудной задачей. Особое внимание будет уделено работе с IoC фреймворками, которые облегчают применение DI. Слушатели курса увидят, что важно понимать принципы, стоящие за IoC, и разберутся, как готовить свой код, чтобы избавить себя от рутинной работы.
Помимо примеров «как надо», будут рассмотрены случаи, как не надо делать, и к чему это может приводить.
По итогам тренинга у слушателей появится прочная теоретическая база, подкрепленная практическими примерами для дальнейшего развития и применения подходов на практике. Выбор IoC фреймворка и дизайн классов будут проходить более осознанно.
Цели
Изучить базовые принципы управления зависимостями. Рассмотреть ключевые DI-паттерны и анти-паттерны, а также познакомиться с одним из DI-контейнеров.
Целевая аудитория
Профессиональные .NET разработчики и архитекторы ПО.
Предварительная подготовка
Знание основных понятий объектно-ориентированного проектирования и опыт работы с языком C# не менее 2-х лет.
Для кого
Разработчик
Архитектор ПО
Улучшаемые навыки
Понимание принципов управления зависимостями
Использование контейнеров внедрения зависимостей
Конфигурация и настройка зависимостей
Тестирование с использованием моков и стабов
Лучшие практики управления зависимостями
Темы курса
01
Базовые принципы – 2 ч.
- Базовые принципы проектирования
-
Принцип инверсии зависимостей
-
IoC vs DI
-
GoF паттерны для управления зависимостями на .Net
02
DI паттерны и антипаттерны – 2 ч.
DI-паттерны
- Composition Root
-
Constructor Injection
-
Property Injection
-
Method Injection
DI-анти-паттерны
- Service Locator
-
Ambient Context
03
DI Container basics – 2 ч.
- Базовые понятия
-
Композиция объектов
-
Конфигурация контейнеров
04
Управление зависимостями на практике – 0,5 ч.
- Борьба с изменениями
-
Пристальный взгляд на DIP
-
Изменчивые и постоянные зависимости
-
Метрики управления зависимостями
-
Типы и силы связей
-
Практические советы
05
Практический пример – 0,3 ч.
⠀⠀
06
DI Container Advanced Topics – 1 ч.
- Управление временем жизни зависимостей
-
Перехватчики вызовов
-
Модульность конфигурации
07
Ключевые моменты и заключение – 0,2 ч.
⠀⠀
08
Всего: теория + демонстрация – 8 ч. (100%)
Чему вы научитесь
01
Научитесь основным принципам управления зависимостями, включая инверсию управления (IoC) и внедрение зависимостей (DI)
02
Освоите работу с популярными контейнерами внедрения зависимостей в .NET
03
Научитесь настраивать и конфигурировать зависимости в приложениях .NET, включая использование различных методов, таких как конструктор, свойства и методы
04
Освоите методы тестирования с использованием моков и стабов для изолированного тестирования компонентов
05
Научитесь применять лучшие практики управления зависимостями, включая принципы SOLID и паттерны проектирования
Ведущий курса
Молчанов Николай
Эксперт в области разработки, архитектуры ПО и управления проектами