Архитектура ПО: внедрение зависимостей на C#

Изучите техники внедрения зависимостей наряду с использованием IoC (DI) - контейнеров

3.80 (41 reviews)
Udemy
platform
Русский
language
Software Engineering
category
Архитектура ПО: внедрение зависимостей на C#
214
students
3.5 hours
content
Nov 2018
last update
$19.99
regular price

What you will learn

Применять внедрение зависимостей и контейнеры для внедрения зависимостей в целях улучшения архитектуры

Description

Создайте прочную основу для понимания архитектуры программного обеспечения, изучив внедрение зависимостей с IoC-контейнерами

Во множестве своих курсов, я использую техники внедрения зависимостей и каждый раз студенты пишут мне в личку вопросы, связанные с непониманием этой темы. Разумеется, непонимание основ создаёт проблемы для студентов с точки зрения образовательного процесса.

Dependency Injection (DI) - внедрение зависимостей это набор техник, позволяющих доставлять зависимости до объектов. Вообще говоря, если вы когда-либо передавали зависимости через конструктор, то вы применяли так называемое внедрение через конструктор. DI - штука одновременно и простая и сложная. С одной стороны, DI состоит из простых техник, а с другой стороны, когда нам необходимо вывести DI на следующий уровень, всё становится несколько сложнее, ибо появляется необходимость использования DI (IoC) - контейнеров. Это фреймворки, которые осуществляют внедрение зависимостей автоматически. Вам только остаётся настроить такой фреймворк в корне приложения (кстати, очень важное понятие, о котором вы узнаете из курса) и после этого, все зависимости будут разрешаться во время исполнения автоматически.

Если вы до сих пор не понимаете о чём я тут говорю, то тогда просто поверьте, что вам абсолютно точно необходимо понимать что это такое. Данный курс значительно улучшит ваше понимание того как выращивается архитектура сложных программных систем. Так что, этот курс обязателен к просмотру всем кто до сих пор не понимает что такое DI и IoC-контейнеры.

Обзор курса

Курс предназначен для всех C#-программистов (ещё не разобравшимся толком с внедрением зависимостей). Курс даёт солидную теоретическую базу, подкрепляя множеством практических примеров.

Итак, курс покрывает следующие темы:

  • Введение в инверсию контроля (Inversion of Control или IoC):
    Dependency Inversion Principle (DIP) - принцип инверсии зависимостей, Inversion of Control (IoC) - инверсия контроля, Dependency Injection (DI) - внедрение зависимостей, типы зависимостей, "чистый" DI и DI через IoC-контейнеры, паттерн "локатор служб"

  • Архитектурные последствия применения DI

  • Внедрение зависимостей: анти-паттерны и рефакторинги
    Control-Freak, скрытые зависимости, временная связанность, чрезмерное внедрение в констуктор и как этого избежать, Ambient Context (контекст окружения), Facade Service, Внедрение через свойство и Bastard Injection, циклические зависимости

  • Рефакторинг плохо спроектированного участка кода с применением DI

  • Пожинаем плоды применения DI

  • IoC (DI) - контейнеры:
    обзор, Unity, позднее связывание, аспектно-ориентированное программирование (АОП), перехват vs "чистый DI" vs АОП инструменты

  • Настройка бутстраппера (в корне приложения) через Unity, Autofac и Castle.Windsor

Content

DIP - Принцип инверсии зависимостей

Обзор секции
Определение DIP (Dependency Inversion Principle)
Типы зависимостей
Стабильные и нестабильные зависимости
Определения IoC (Inversion of Control) и DI (Dependency Injection)
Нарушение DIP. Демо
Рефакторинг, следуя DIP
Техники внедрения зависимостей
Архитектурные последствия применения DI
Распространённые запахи нарушения DIP
Заключение

Введение в IoC-контейнеры (DI-контейнеры)

Введение
Чистый DI и DI через IoC-контейнеры
Пишем элементарный IoC-контейнер
Паттерн "Service Locator"
Демонастрация использования IoC-контейнера
Заключение

Инъекция зависимостей: рефакторинги и антипаттерны

Обзор секции
Control Freak
Service Locator и скрытые зависимости
Временная связанность и инъекция через конструктор
Чрезмерное внедрение в конструктор
Ambient Context - контекст окружения
Facade Service
Внедрение через свойства = Внедрение внебрачных зависимостей?
Циклические зависимости
Заключение

Реальный пример из практики

Обзор секции
Обзор приложения
Модели и доступ к данным
Обзор UI
Тесная связанность
Рефакторинг: лечим нарушение DIP
Изолируем бутстраппер
Последствия рефакторинга
Заключение

Пожинаем плоды DI

Обзор секции
Добавляем новый слой доступа к данным
Пишем юнит-тесты для моделей представлений
Заключение

IoC-контейнеры (DI-контейнеры)

Обзор секции
Обзор контейнеров
Unity DI-контейнер
Позднее связывание
Аспектно-ориентированное программирование (АОП)
Демонстрация проблемы повторяющегося кода
Реализуем АОП через перехват
Перехват vs Чистый DI vs АОП инструменты
Autofac и Castle.Windsor
Проблемы DI-контейнеров. Когда их применять?
Заключение

Reviews

Xeniya
September 24, 2020
Хорошо и подробно описан принцип инверсии зависимостей, много практических примеров, паттернов и антипаттернов
Alexandr
August 3, 2020
Смотрел другие курсы данного преподвателя очень нравились. У этого курса очень мало практики для такой сложной темы
Mikhail
January 17, 2020
Во первых это курс не от автора, а от переводчика. И перевод выполнен ужасно. Гигантские паузы между фразами напоминают машинный перевод. И только зря затягивают лекцию. Если бы бы сделан монтаж, то курс был бы раза в 1,5-2 короче, абсолютно без потери контента.
Sergii
January 2, 2020
Отличный курс но местами слишком усложнено примерами из WPF. Я совсем не знаю WPF так как работаю в Unity 3D. Но и без этого все понятно, а места с WPF можно скипнуть

Charts

Price

Архитектура ПО: внедрение зависимостей на C# - Price chart

Rating

Архитектура ПО: внедрение зависимостей на C# - Ratings chart

Enrollment distribution

Архитектура ПО: внедрение зависимостей на C# - Distribution chart
1932266
udemy ID
9/25/2018
course created date
11/23/2019
course indexed date
Bot
course submited by