Содержание курса
1. Введение
1 урок
48
38
15м
4
Закрытый
1.1
Введение
↗
48
38
15м 52с
4
2. Принципы проектирования SOLID
7 уроков
240
232
69м
17
Закрытый
2.1
Введение
↗
39
39
1м 12с
3
Закрытый
2.2
Single Responsibility Principle (SRP)
↗
40
40
10м 47с
3
Закрытый
2.3
Open-Closed Principle (OCP)
↗
37
31
22м 1с
3
Закрытый
2.4
Liskov Substitution Principle (LSP)
↗
32
32
9м 57с
2
Закрытый
2.5
Interface Segregation Principle (ISP)
↗
29
27
9м 44с
2
Закрытый
2.6
Dependency Inversion Principle (DIP)
↗
32
32
14м 39с
2
Закрытый
2.7
Заключение
↗
31
31
5м 53с
2
3. Строитель (Builder)
10 уроков
407
394
95м
10
Закрытый
3.1
Введение
↗
33
33
2м 43с
2
Закрытый
3.2
Жизнь без строителя
↗
31
31
6м 55с
3
Закрытый
3.3
Строитель
↗
31
31
11м 7с
2
Закрытый
3.4
Строитель с fluent-интерфейсом
↗
28
28
9м 47с
3
Закрытый
3.5
Многогранный строитель
↗
27
27
10м 37с
0
Открытый
3.6
Наследование строителей с помощью рекурсивных дженериков
↗
162
162
11м 55с
0
Закрытый
3.7
Функциональный строитель
↗
24
24
13м 23с
0
Закрытый
3.8
Строитель-параметр
↗
25
25
8м 30с
0
Закрытый
3.9
Задача на программирование паттерна Строитель
↗
26
13
24м 35с
0
Закрытый
3.10
Заключение
↗
20
20
2м 51с
0
4. Фабрики (Factories)
9 уроков
200
195
36м
1
Закрытый
4.1
Введение
↗
23
23
4м 0с
0
Закрытый
4.2
Пример с точкой
↗
24
24
4м 48с
0
Закрытый
4.3
Фабричный метод
↗
23
23
3м 41с
0
Закрытый
4.4
Фабрика
↗
24
24
2м 58с
0
Закрытый
4.5
Вложенная фабрика
↗
23
23
2м 19с
1
Закрытый
4.6
Асинхронные фабрики
↗
23
23
7м 45с
0
Закрытый
4.7
Абстрактная фабрика
↗
24
24
6м 27с
0
Закрытый
4.8
Задача на программирование паттерна Фабрика
↗
19
14
7м 45с
0
Закрытый
4.9
Заключение
↗
17
17
1м 15с
0
5. Прототип (Prototype)
7 уроков
118
115
44м
1
Закрытый
5.1
Введение
↗
18
18
2м 22с
0
Закрытый
5.2
ICloneable — плохая штука
↗
19
19
9м 3с
0
Закрытый
5.3
Копирующий конструктор
↗
17
17
4м 23с
1
Закрытый
5.4
Копирование через сериализацию
↗
17
17
6м 59с
0
Закрытый
5.5
Фабрика прототипов
↗
19
19
7м 47с
0
Закрытый
5.6
Задача на программирование паттерна Прототип
↗
14
11
14м 15с
0
Закрытый
5.7
Заключение
↗
14
14
1м 10с
0
6. Синглтон (Singleton)
8 уроков
121
116
39м
0
Закрытый
6.1
Введение
↗
16
16
4м 3с
0
Закрытый
6.2
Реализуем Singleton
↗
15
15
8м 19с
0
Закрытый
6.3
Проблемы с тестированием
↗
15
15
4м 26с
0
Закрытый
6.4
Синглтон и внедрение зависимостей
↗
15
15
10м 51с
0
Закрытый
6.5
Мультитон
↗
16
16
3м 14с
0
Закрытый
6.6
Monostate
↗
15
15
5м 11с
0
Закрытый
6.7
Задача на программирование паттерна Синглтон
↗
15
10
-
0
Закрытый
6.8
Заключение
↗
14
14
4м 31с
0
7. Адаптер (Adapter)
8 уроков
113
111
46м
1
Закрытый
7.1
Введение
↗
18
18
2м 1с
0
Закрытый
7.2
Сценарий векторной/растровой растеризации
↗
17
17
8м 5с
1
Закрытый
7.3
Кэширование в адаптере
↗
15
15
7м 35с
0
Закрытый
7.4
Суррогат свойств
↗
14
14
5м 15с
0
Закрытый
7.5
Адаптер в контексте внедрения зависимостей
↗
14
14
8м 1с
0
Закрытый
7.6
Адаптер для литералов в дженериках
↗
13
13
15м 12с
0
Закрытый
7.7
Задача на программирование паттерна Адаптер
↗
10
8
-
0
Закрытый
7.8
Заключение
↗
12
12
1м 4с
0
8. Мост (Bridge)
4 урока
57
50
14м
0
Закрытый
8.1
Введение
↗
15
15
2м 10с
0
Закрытый
8.2
Мост
↗
15
15
11м 29с
0
Закрытый
8.3
Задача на программирование паттерна Мост
↗
14
7
-
0
Закрытый
8.4
Заключение
↗
13
13
1м 49с
0
9. Компоновщик (Composite)
6 уроков
63
61
21м
1
Закрытый
9.1
Введение
↗
13
13
2м 48с
1
Закрытый
9.2
Геометрические формы
↗
11
11
7м 19с
0
Закрытый
9.3
Нейросети
↗
10
10
7м 45с
0
Закрытый
9.4
Композитная спецификация
↗
10
10
4м 52с
0
Закрытый
9.5
Задача на программирование паттерна Компоновщик
↗
8
6
-
0
Закрытый
9.6
Заключение
↗
11
11
2м 36с
0
10. Декоратор (Decorator)
8 уроков
85
83
33м
0
Закрытый
10.1
Введение
↗
13
13
3м 37с
0
Закрытый
10.2
Кастомный StringBuilder
↗
12
12
5м 52с
0
Закрытый
10.3
Динамическая композиция декораторов
↗
11
11
8м 24с
0
Закрытый
10.4
Статическая композиция декораторов
↗
11
11
6м 21с
0
Закрытый
10.5
Множественное наследование с интерфейсами
↗
11
11
5м 54с
0
Закрытый
10.6
Адаптер-декоратор
↗
10
10
4м 54с
0
Закрытый
10.7
Задача на программирование паттерна Декоратор
↗
8
6
-
0
Закрытый
10.8
Заключение
↗
9
9
2м 58с
0
11. Фасад (Façade)
4 урока
43
40
12м
1
Закрытый
11.1
Введение
↗
12
12
2м 14с
0
Закрытый
11.2
Фасад
↗
12
12
8м 0с
1
Закрытый
11.3
Задача на программирование паттерна Фасад
↗
10
7
-
0
Закрытый
11.4
Заключение
↗
9
9
1м 19с
0
12. Приспособленец (Flyweight)
5 уроков
47
44
19м
0
Закрытый
12.1
Введение
↗
10
10
3м 12с
0
Закрытый
12.2
Повторяющиеся имена пользователей
↗
11
11
6м 26с
0
Закрытый
12.3
Форматирование текста
↗
10
10
8м 24с
0
Закрытый
12.4
Задача на программирование паттерна Приспособленец
↗
8
5
-
0
Закрытый
12.5
Заключение
↗
8
8
1м 58с
0
13. Заместитель (Proxy)
10 уроков
84
83
57м
0
Закрытый
13.1
Введение
↗
10
10
2м 10с
0
Закрытый
13.2
Защитный заместитель
↗
9
9
6м 32с
0
Закрытый
13.3
Виртуальный заместитель
↗
9
9
6м 36с
0
Закрытый
13.4
Заместитель доступа к свойству
↗
9
9
9м 18с
0
Закрытый
13.5
Заместитель для значений
↗
8
8
7м 0с
0
Закрытый
13.6
Композитный заместитель и задача SoA/AoS
↗
8
8
8м 53с
0
Закрытый
13.7
Композитный заместитель с полями-массивами
↗
8
8
7м 9с
0
Закрытый
13.8
Динамический заместитель для логирования
↗
8
8
12м 3с
0
Закрытый
13.9
Задача на программирование паттерна Заместитель
↗
7
6
-
0
Закрытый
13.10
Заключение
↗
8
8
1м 35с
0
14. Цепочка обязанностей (Chain of Responsibility)
6 уроков
60
55
30м
0
Закрытый
14.1
Введение
↗
12
12
3м 57с
0
Закрытый
14.2
Цепочка методов
↗
12
12
10м 22с
0
Закрытый
14.3
Разделение команд и запросов (CQS)
↗
10
10
1м 10с
0
Закрытый
14.4
Цепочка через брокер
↗
10
10
15м 41с
0
Закрытый
14.5
Задача на программирование паттерна Цепочка обязанностей
↗
9
4
-
0
Закрытый
14.6
Заключение
↗
7
7
1м 5с
0
15. Команда (Command)
6 уроков
60
56
27м
0
Закрытый
15.1
Введение
↗
13
13
2м 47с
0
Закрытый
15.2
Команда
↗
12
12
6м 56с
0
Закрытый
15.3
Операции undo
↗
9
9
5м 6с
0
Закрытый
15.4
Композитная команда
↗
9
9
13м 51с
0
Закрытый
15.5
Задача на программирование паттерна Команда
↗
9
5
-
0
Закрытый
15.6
Заключение
↗
8
8
1м 2с
0
16. Интерпретатор (Interpreter)
5 уроков
40
37
21м
0
Закрытый
16.1
Введение
↗
9
9
3м 47с
0
Закрытый
16.2
Лексический разбор
↗
8
8
7м 13с
0
Закрытый
16.3
Синтаксический разбор
↗
8
8
10м 22с
0
Закрытый
16.4
Задача на программирование паттерна Интерпретатор
↗
7
4
-
0
Закрытый
16.5
Заключение
↗
8
8
1м 58с
0
17. Итератор (Iterator)
6 уроков
79
77
28м
0
Закрытый
17.1
Введение
↗
9
9
1м 16с
0
Закрытый
17.2
Объект — итератор
↗
9
9
9м 7с
0
Закрытый
17.3
Метод итерации
↗
9
9
7м 22с
0
Открытый
17.4
Свойства с полем-массивом
↗
37
37
8м 30с
0
Закрытый
17.5
Задача на программирование паттерна Итератор
↗
7
5
-
0
Закрытый
17.6
Заключение
↗
8
8
2м 31с
0
18. Посредник (Mediator)
7 уроков
59
54
46м
0
Закрытый
18.1
Введение
↗
10
10
3м 46с
0
Закрытый
18.2
Групповой чат
↗
9
9
9м 13с
0
Закрытый
18.3
Посредник с событиями
↗
9
9
8м 54с
0
Закрытый
18.4
Брокер событий с Reactive Extensions
↗
8
8
16м 24с
0
Закрытый
18.5
Введение в MediatR
↗
9
7
8м 45с
0
Закрытый
18.6
Задача на программирование паттерна Посредник
↗
7
4
-
0
Закрытый
18.7
Заключение
↗
7
7
2м 48с
0
19. Хранитель (Memento)
5 уроков
44
40
17м
0
Закрытый
19.1
Введение
↗
9
9
2м 7с
0
Закрытый
19.2
Хранитель
↗
9
9
6м 57с
0
Закрытый
19.3
Undo и redo
↗
9
9
8м 33с
0
Закрытый
19.4
Задача на программирование паттерна Хранитель
↗
8
4
-
0
Закрытый
19.5
Заключение
↗
9
9
1м 0с
0
20. Null Object
5 уроков
43
41
13м
0
Закрытый
20.1
Введение
↗
9
9
2м 46с
0
Закрытый
20.2
Null object
↗
9
9
6м 30с
0
Закрытый
20.3
Динамический null object
↗
9
9
5м 35с
0
Закрытый
20.4
Задача на программирование паттерна Null Object
↗
7
5
-
0
Закрытый
20.5
Заключение
↗
9
9
1м 5с
0
21. Наблюдатель (Observer)
10 уроков
78
75
76м
0
Закрытый
21.1
Введение
↗
11
11
2м 11с
0
Закрытый
21.2
Ключевое слово event
↗
9
9
6м 3с
0
Закрытый
21.3
Паттерн слабых событий (Weak Event Pattern)
↗
8
8
8м 20с
0
Закрытый
21.4
Наблюдатель через специальные интерфейсы
↗
8
8
13м 56с
0
Закрытый
21.5
Наблюдаемые свойства и коллекции
↗
8
8
8м 51с
0
Закрытый
21.6
Зависимости между свойствами
↗
7
7
17м 53с
0
Закрытый
21.7
Двунаправленный наблюдатель
↗
7
7
12м 57с
0
Закрытый
21.8
Декларативные подписки на события
↗
8
8
8м 11с
0
Закрытый
21.9
Задача на программирование паттерна Наблюдатель
↗
6
3
-
0
Закрытый
21.10
Заключение
↗
6
6
2м 56с
0
22. Состояние (State)
7 уроков
58
54
32м
0
Закрытый
22.1
Введение
↗
9
9
2м 52с
0
Закрытый
22.2
Классическая реализация
↗
9
9
8м 30с
0
Закрытый
22.3
Делаем конечный автомат вручную
↗
9
9
9м 4с
0
Закрытый
22.4
Конечный автомат на switch-ах
↗
9
9
7м 59с
0
Закрытый
22.5
Конечный автомат через Stateless
↗
7
7
5м 19с
0
Закрытый
22.6
Задача на программирование паттерна Состояние
↗
7
3
-
0
Закрытый
22.7
Заключение
↗
8
8
1м 24с
0
23. Стратегия (Strategy)
6 уроков
53
52
21м
0
Закрытый
23.1
Введение
↗
10
10
2м 39с
0
Закрытый
23.2
Динамическая стратегия
↗
11
11
8м 56с
0
Закрытый
23.3
Статическая стратегия
↗
10
10
3м 42с
0
Закрытый
23.4
Стратегии сравнения
↗
10
10
8м 59с
0
Закрытый
23.5
Задача на программирование паттерна Стратегия
↗
5
4
-
0
Закрытый
23.6
Заключение
↗
7
7
1м 36с
0
24. Шаблонный метод (Template Method)
5 уроков
40
37
15м
0
Закрытый
24.1
Введение
↗
9
9
2м 38с
0
Закрытый
24.2
Шаблонный метод
↗
9
9
7м 58с
0
Закрытый
24.3
Функциональный шаблонный метод
↗
8
8
5м 13с
0
Закрытый
24.4
Задача на программирование паттерна Шаблонный метод
↗
7
4
-
0
Закрытый
24.5
Заключение
↗
7
7
1м 46с
0
25. Посетитель (Visitor)
9 уроков
55
51
60м
0
Закрытый
25.1
Введение
↗
7
7
2м 44с
0
Закрытый
25.2
Интрузивный посетитель
↗
7
7
6м 18с
0
Закрытый
25.3
Рефлективный посетитель
↗
6
6
7м 21с
0
Закрытый
25.4
Строитель посетителей
↗
3
3
20м 16с
0
Закрытый
25.5
Классический посетитель (Double Dispatch)
↗
6
6
10м 23с
0
Закрытый
25.6
Динамический посетитель через DLR
↗
6
6
5м 33с
0
Закрытый
25.7
Посетитель без циклов (Acyclic Visitor)
↗
6
6
8м 51с
0
Закрытый
25.8
Задача на программирование паттерна Посетитель
↗
7
3
-
0
Закрытый
25.9
Заключение
↗
7
7
1м 13с
0
26. Завершение курса
1 урок
7
3
12м
1
Закрытый
26.1
Заключение
↗
7
3
12м 27с
1