DDD Lite
Domain-Driven Design без фанатизма: практичные паттерны
Уровень: Продвинутый · около 5 ч · после курса: Опишешь домен словами предметной области: сущности, агрегаты и границы контекстов
Чему научишься
- Различить Entity, Value Object и Aggregate
- Спроектировать Bounded Context
- Применить Repository pattern
- Использовать Domain Events
- Отделить инфраструктуру от домена
- Избежать anaemic domain model
Уроки курса (9)
Модуль 1 · Основы домена
Что такое домен и зачем общий словарь команды
- DDD Lite: что такое домен и почему это про слова - DDD без академизма: как перестать писать «UserService из ада»
- Ubiquitous Language: общий словарь команды - Когда «урок» и «лекция» - это разные вещи (и это важно)
Модуль 2 · Строительные блоки
Entity, Value Object, Aggregate, сервисы и репозитории
- Entity и Value Object: кто есть кто - User - сущность, Email - значение. И это меняет правила игры
- Aggregates и инварианты: правила, которые нельзя нарушать - Как не допустить «прогресс 200%» и «урок без курса»
- Domain Service vs Application Service - Где живёт бизнес-логика, а где сценарии
- Repositories в DDD: что они должны делать - Репозиторий - не свалка методов getByWhatever
Модуль 3 · Контексты, события, проект
Bounded Context, Domain Events и финальная модель
- Bounded Context: границы предметных областей - Не смешивай «обучение» и «платежи» в один суп
- Domain Events: события домена и путь к Event-Driven - «Урок пройден» - это факт, который полезно сообщить миру
- Мини-проект: доменная модель BackendStart (Course/Lesson/Progress) - Собираем DDD Lite на практике