Обзор курса
Этот курс предоставляет слушателю наиболее полный обзорПаттернов проектирования C#и .NET через чисто практический подход. В частности,на этом курсе вы увидите:
Последние версии языка C# экосистемы .NET
Современные подходы к проектированию:dependency injection, реактивное программирование,и т.п.
Использование современного инструментария разработки (Rider)
Обсуждение вариаций и альтернативных реализаций паттернов
Этот курс покрывает все паттерна Банды Четырех(GoF) а также современные вариации и изменения. Также мы обсудим наличие паттернов встроенных в сам язык или фреймворки .NET(например BCL).
Что еще за Паттерны Проектирования?
Паттерны проектирования — это готовые к использованию решения часто встречающихся задач проектирования. Паттерны были популяризованы в книге 1994 года DesignPatterns:Elements of Reusable Object-Oriented SoftwarebyErich Gamma,John Vlissides, Ralph Johnson and Richard Helm (авторов иногда называютБандой Четырех — Gang of Four — оттуда сокращение GoF).
Оригинальный труд был написан с помощью языков C++и Smalltalk, но с тех времен утекло много воды,и паттерны успешно адаптировали под все современные языки,такие как C#, Java, PHP, и даже под не-ООПязыки,такие как JavaScript.
Применимость паттернов проектирования универсальна:мы встречаем их в библиотеках,некоторые из них встроены прямо в язык,и вы наверняка сами используете их в вашем коде,даже не подозревая что они там есть.
Какие паттерны покрыты в курсе?
В этом курсе вы узнаете про все паттерны Банды Четырех. Вот что вы узнаете из курса:
Принципы проектирования SOLID: ПринципЕдинственной Обязанности,Принцип Открыт/Закрыт,Принцип Подстановки Лисков,Принцип Разделения Интерфейсов и Принцип Инверсии Зависимостей
Порождающие паттерны:Строитель,Фабрики(Фабричный Метод,Абстрактная Фабрика),Прототип,Синглтон
Структурные паттерны: Адаптер,Мост,Компоновщик,Декоратор,Фасад,Приспособленец,Заместитель
Поведенческие паттерны: Цепочка обязанностей,Команда,Интерпретатор,Итератор,Посредник,Хранитель,NullObject, Наблюдатель,Состояние,Стратегия,Шаблонный Метод,Посетитель
Для кого этот курс?
Этот курс создан для .NET/C# разработчиков которые хотят видеть не только типовые примеры паттернов,но также различные вариации и трюки языка которые можно использовать чтобы писать паттерны в "современном" стиле. Например,с использованием DLRи ImpromptuInterface, мы можем сделать DynamicObject который реализует любой нужный нам интерфейс. Это дает возможность динамического программирования и позволяет делать интересные реализации некоторых паттернов.
В курсе используются достаточно сложные аспекты C#, такие как dynamic, рекурсивные дженерики и т.п.. Также,очень сильно задействованы сторонние библиотеки и фреймворки:Autofac(dependencyinjection), TPL и async/await для многопоточности,LINQ, Reactive Extensions, и другие.
Стиль преподавания
Весь курс представлен как набор лайв-кодинг сессий,в нем минимум теории и максимум практики!Видео представлены с помощью моей собственной системы Kinetica, которая отбрасывает весь визуальный шум от IDE и позволяет сфокусировать на одном — на коде.
Помимо лекций, в конце каждого раздела есть задача по программированию: нужно реализовать паттерн. Эти задачи помогают закрепить пройденный материал.