Курс посвящен процессу создания программных абстракций — моделей предметных областей. На примере разработки онлайн-системы для продажи билетов в кинотеатр, мы рассмотрим выделение правильных сущностей, нахождение связей между ними, и поговорим о предметно-ориентированном проектировании, инверсии контроля, принципе инверсии зависимостей, конечных автоматах.
Чему вы научитесь:
- Использовать предметно-ориентированный дизайн в своей повседневной практике
- Грамотно переносить логику предметной области на код (сущности, сервисы)
- Правильно строить архитектуру сложных бизнес-приложений, разделять код на слои в соответствии с шаблоном Service Layer
- По максимуму использовать возможности ООП для организации легко расширяемого и тестируемого кода.
Уроки курса
-
3
Сущности и связи
Понять, что такое сущности и связи между сущностями. Выделить сущности в рассматриваемой нами системе, описать их свойства. -
4
Архитектура
Познакомиться с несколькими важными аспектами архитектур и рассмотреть стандартные, принятые в индустрии подходы к проектированию систем. -
6
Dependency Injection Container
Познакомиться с идеей инверсии зависимостей и внедрения зависимостей. Рассмотреть паттерн Service locator и перейти к DI Container как к самому продвинутому решению. -
7
Предметная область
Понять, что такое Domain-Driven Design (предметно-ориентированное проектирование) и ограниченный контекст. -
8
Изменяемость
Рассмотреть сценарий изменения сущности и выявить первое правило изменяемости: «не изменяй!». Взглянуть на несколько примеров изменений в нашей системе.
Автор
Сооснователь и CEO образовательного проекта Хекслет. Программирую с 2007 года. За это время прошёл путь от разработчика до технического директора и управляющего отдельным подразделением (филиалом). Управлял командами, в которых больше 50 разработчиков.
- Программирую на языках: Elixir, Clojure, JavaScript, PHP, Ruby.
- Соорганизатор конференции Nastachku.ru.
- Вимер.
- Топлю за DevOps и автоматизированные тесты.
Впечатления
Какая же красивая и элегантная по своим возможностям "вязь" получается с использованием контейнера зависимостей. Один восторг от задания!
Очень интересный курс, дающий фундаментальные знания. Must have так же как и СИКП. К сожалению отсутствуют испытания.
Стоящий курс. Потратил много часов на прохождение практик, некоторые пришлось запускать локально для более глубокой отладки.
Хочу сказать, что охре.... задание, офигенное задание!!! Спасибо!