Содержание курса
Введение
7 уроков
1.
Добро пожаловать на курс «Паттерны программирования»
↗
2.
Как устроен курс: структура, модули, типы заданий
↗
3.
Что такое паттерн и зачем он нужен
↗
4.
Паттерн vs алгоритм vs библиотека vs фреймворк
↗
5.
Немного истории: книга «Банды четырёх» и её наследие
↗
6.
Базовая UML-нотация для чтения диаграмм паттернов
↗
7.
Как оставить обратную связь и сообщить об ошибке
↗
Принципы программирования
18 уроков
1.
DRY — Don't Repeat Yourself
↗
2.
KISS — Keep It Simple, Stupid
↗
3.
YAGNI — You Aren't Gonna Need It
↗
4.
WET — противоположность DRY как антипаттерн
↗
5.
SOLID: принцип единственной ответственности (S)
↗
6.
SOLID: принцип открытости/закрытости (O)
↗
7.
SOLID: принцип подстановки Лисков (L)
↗
8.
SOLID: принцип разделения интерфейса (I)
↗
9.
SOLID: принцип инверсии зависимостей (D)
↗
10.
SOLID целиком: как принципы работают вместе
↗
11.
GRASP — General Responsibility Assignment Software Patterns
↗
12.
SoC — Separation of Concerns
↗
13.
POLA/POLS — Principle of Least Astonishment
↗
14.
SLAP — Single Level of Abstraction Principle
↗
15.
CQS — Command Query Separation
↗
16.
PoLP — Principle of Least Privilege
↗
17.
CUPID — альтернатива SOLID от Dan North
↗
18.
Экзамен: Фундаментальные принципы разработки
↗
Порождающие паттерны
6 уроков
1.
Singleton (Одиночка)
↗
2.
Factory Method (Фабричный метод)
↗
3.
Abstract Factory (Абстрактная фабрика)
↗
4.
Builder (Строитель)
↗
5.
Prototype (Прототип)
↗
6.
Экзамен: Порождающие паттерны (Creational GoF)
↗
Структурные паттерны
8 уроков
1.
Adapter (Адаптер)
↗
2.
Facade (Фасад)
↗
3.
Decorator (Декоратор)
↗
4.
Proxy (Заместитель)
↗
5.
Composite (Компоновщик)
↗
6.
Bridge (Мост)
↗
7.
Flyweight (Приспособленец)
↗
8.
Экзамен: Структурные паттерны (Structural GoF)
↗
Поведенческие паттерны
12 уроков
1.
Strategy (Стратегия)
↗
2.
Observer (Наблюдатель)
↗
3.
Template Method (Шаблонный метод)
↗
4.
Iterator (Итератор)
↗
5.
Command (Команда)
↗
6.
State (Состояние)
↗
7.
Chain of Responsibility (Цепочка обязанностей)
↗
8.
Mediator (Посредник)
↗
9.
Memento (Снимок)
↗
10.
Visitor (Посетитель)
↗
11.
Interpreter (Интерпретатор)
↗
12.
Экзамен: Поведенческие паттерны (Behavioral GoF)
↗
Паттерны баз данных
9 уроков
1.
CRUD — Create, Read, Update, Delete
↗
2.
ACID — Atomicity, Consistency, Isolation, Durability
↗
3.
BASE — Basically Available, Soft state, Eventual consistency
↗
4.
CAP-теорема
↗
5.
PACELC
↗
6.
DDL / DML / DCL / TCL
↗
7.
OLTP vs OLAP
↗
8.
ORM — Object-Relational Mapping
↗
9.
Экзамен: Данные, транзакции и системные акронимы
↗
Антипаттерны
9 уроков
1.
God Object
↗
2.
Spaghetti Code
↗
3.
Golden Hammer
↗
4.
Copy-Paste Programming
↗
5.
Magic Numbers/Strings
↗
6.
Anemic Domain Model
↗
7.
Big Ball of Mud
↗
8.
Singleton-мания
↗
9.
Экзамен: Антипаттерны
↗
Архитектурные паттерны
18 уроков
1.
Layered Architecture (Слоистая архитектура)
↗
2.
MVC (Model-View-Controller)
↗
3.
MVP (Model-View-Presenter)
↗
4.
MVVM (Model-View-ViewModel)
↗
5.
MVI (Model-View-Intent)
↗
6.
Front Controller / Page Controller
↗
7.
Hexagonal Architecture (Ports & Adapters)
↗
8.
Onion Architecture
↗
9.
Clean Architecture
↗
10.
CQRS — Command Query Responsibility Segregation
↗
11.
Event Sourcing
↗
12.
Event-Driven Architecture
↗
13.
Pipe and Filter
↗
14.
Broker Pattern
↗
15.
Service-Oriented Architecture (SOA)
↗
16.
Microservices
↗
17.
Space-Based Architecture
↗
18.
Экзамен: Архитектурные паттерны
↗
Enterprise-паттерны
12 уроков
1.
DTO — Data Transfer Object
↗
2.
DAO — Data Access Object
↗
3.
Transaction Script vs Domain Model
↗
4.
Active Record
↗
5.
Repository
↗
6.
Data Mapper
↗
7.
Table Data Gateway / Row Data Gateway
↗
8.
Unit of Work
↗
9.
Service Layer
↗
10.
Identity Map
↗
11.
Lazy Load
↗
12.
Экзамен: Корпоративные паттерны (Enterprise / PoEAA)
↗
Параллелизм
11 уроков
1.
Producer-Consumer
↗
2.
Thread Pool
↗
3.
Future/Promise
↗
4.
Read-Write Lock
↗
5.
Scheduler
↗
6.
Monitor Object
↗
7.
Actor Model
↗
8.
Reactor / Proactor
↗
9.
Half-Sync/Half-Async
↗
10.
Balking и Guarded Suspension
↗
11.
Экзамен: Паттерны параллелизма и асинхронности
↗
Интеграция
14 уроков
1.
API Gateway
↗
2.
Message Queue
↗
3.
Publish-Subscribe
↗
4.
Request-Reply
↗
5.
Retry / Backoff
↗
6.
Circuit Breaker
↗
7.
Bulkhead
↗
8.
Sidecar
↗
9.
Ambassador
↗
10.
Strangler Fig
↗
11.
Anti-Corruption Layer
↗
12.
Outbox Pattern
↗
13.
Saga
↗
14.
Экзамен: Паттерны интеграции и распределённых систем
↗
Функциональные паттерны
8 уроков
1.
Immutable Object
↗
2.
Memoization
↗
3.
Pipeline / Function Composition
↗
4.
Currying и Partial Application
↗
5.
Lazy Evaluation
↗
6.
Functor
↗
7.
Monad
↗
8.
Экзамен: Функциональные паттерны
↗
Паттерны фронтенда
6 уроков
1.
Container/Presentational Pattern
↗
2.
Higher-Order Component (HOC)
↗
3.
Render Props
↗
4.
Hooks Pattern
↗
5.
Flux/Redux
↗
6.
Экзамен: Паттерны фронтенда
↗
Паттерны тестирования
6 уроков
1.
AAA — Arrange, Act, Assert
↗
2.
Test Fixture
↗
3.
Mock Object
↗
4.
Builder для тестовых данных
↗
5.
Page Object
↗
6.
Экзамен: Паттерны тестирования
↗
Облачные паттерны
6 уроков
1.
Health Endpoint Monitoring
↗
2.
Gatekeeper
↗
3.
Sharding
↗
4.
Database per Service
↗
5.
Materialized View
↗
6.
Экзамен: Облачные паттерны
↗
Заключение
5 уроков
1.
Итоги курса: что мы прошли
↗
2.
Как выбирать паттерн под задачу (сводное дерево решений)
↗
3.
Паттерны на собеседованиях: что чаще всего спрашивают
↗
4.
Куда двигаться дальше (книги, ресурсы, практика)
↗
5.
Финальная обратная связь о курсе
↗