О курсе
Обзор курса
Этот курс предоставляет обширный обзор паттернов проектирования в языке C# и экосистеме .NET, сосредотачиваясь на практическом подходе. В ходе этого обучения вы будете ознакомлены с:
- Последними версиями языка C# и экосистемы .NET.
- Современными методиками проектирования, такими как внедрение зависимостей (dependency injection) и реактивное программирование.
- Использованием современных инструментов разработки, включая Rider.
Также будет рассмотрено разнообразие вариаций и альтернативных реализаций паттернов.
Этот курс охватывает все паттерны Банды Четырех (GoF), а также их современные вариации и изменения. Будет обсуждено применение паттернов, встроенных в сам язык C# или фреймворки .NET, такие как BCL (Base Class Library).
Что такое Паттерны Проектирования?
Паттерны проектирования представляют собой готовые решения для типичных задач в проектировании программ. Этот подход стал известен после выпуска книги 1994 года «Design Patterns: Elements of Reusable Object-Oriented Software» авторства Эриха Гаммы, Джона Влиссидеса, Ральфа Джонсона и Ричарда Хелма (иногда их называют «Банда Четырех» — GoF).
Исходная книга была написана для языков C++ и Smalltalk, но со временем паттерны были успешно адаптированы для всех современных языков программирования, включая C#, Java, PHP и даже не объектно-ориентированные языки, такие как JavaScript.
Применение паттернов проектирования распространено: они встречаются в библиотеках, иногда встроены непосредственно в язык программирования, и вы, возможно, уже использовали их в своем коде, даже не зная об этом.
Какие паттерны рассматриваются в курсе?
В этом курсе будут рассмотрены все паттерны Банды Четырех. Вот что вы узнаете:
- Принципы проектирования SOLID: Единственная Обязанность, Открытое/Закрытое, Подстановка Лисков, Разделение Интерфейсов и Инверсия Зависимостей.
- Порождающие паттерны: Строитель, Фабричный Метод, Абстрактная Фабрика, Прототип, Синглтон.
- Структурные паттерны: Адаптер, Мост, Компоновщик, Декоратор, Фасад, Приспособленец, Заместитель.
- Поведенческие паттерны: Цепочка Обязанностей, Команда, Интерпретатор, Итератор, Посредник, Хранитель, Null Object, Наблюдатель, Состояние, Стратегия, Шаблонный Метод, Посетитель.
Для кого предназначен этот курс?
Этот курс разработан для .NET/C# разработчиков, которые не только хотят ознакомиться с основными примерами паттернов, но и изучить различные вариации и тонкости их применения с использованием современных возможностей языка. К примеру, с помощью DLR и ImpromptuInterface можно создать DynamicObject, который реализует необходимый интерфейс, предоставляя гибкость динамического программирования и интересные реализации некоторых паттернов.
В курсе также рассматриваются сложные аспекты C#, такие как dynamic, рекурсивные дженерики и другие, а также вовлекаются сторонние библиотеки и фреймворки: Autofac (внедрение зависимостей), TPL и async/await для работы с многопоточностью, LINQ, Reactive Extensions и многие другие.
Стиль обучения
Этот курс представляет собой набор сессий лайв-кодинга, минимизирующих теоретическую составляющую и максимизирующих практические навыки. Видеоматериалы представлены с использованием собственной системы Kinetica, которая исключает визуальные помехи и сосредотачивает внимание на коде.
Кроме видеолекций, в конце каждой секции предлагаются задачи по программированию, позволяющие закрепить полученные знания.