Текст площадки «Stepik». Упомянутые цены и обещанные результаты могут быть неактуальны; условия покупки проверяйте у продавца.
Перестаньте писать толстые сервисы. Научитесь проектировать большие Symfony-приложения так, как это делают опытные команды.
Постройте систему бронирования отелей и освоите DDD, CQRS, Saga, Domain Events и Hexagonal Architecture на практике.
Читать полное описание
Представьте.
- Вы уже несколько лет пишете на Symfony.
- Каждый новый бизнес-кейс превращается в ещё один Service.
- Контроллеры разрастаются.
- Правила начинают дублироваться.
- Через полгода никто не понимает, где должна жить логика.
Именно этот момент становится отправной точкой курса.
Цель курса — научить вас проектировать и писать PHP-приложения, в которых бизнес-логика живёт в модели предметной области, а не размазана по контроллерам и сервисам-«помойкам». Не пересказ «синей книги» Эванса, а последовательная практика: каждый паттерн вы примените своими руками к живому коду.
Почему именно этот курс. Большинство материалов по DDD либо остаются на уровне абстрактных схем, либо показывают паттерны на игрушечных примерах-однодневках. Здесь всё иначе:
Один сквозной проект на все 24 урока — платформа бронирования отелей. Домен выбран не случайно: в нём естественно возникают жёсткие инварианты (двойное бронирование), потребность в CQRS (поиск номеров против создания брони), eventual consistency и Saga (бронирование → оплата → подтверждение, с компенсацией при неудаче). Ничего не притянуто за уши.
Курс начинается с намеренно «плохого» кода. Первые два урока вы пишете классическое анемичное Symfony-приложение и своими глазами видите, как дублируются правила и разрастаются контроллеры. Каждый следующий паттерн вводится только тогда, когда вы уже столкнулись с проблемой, которую он решает. Ни один паттерн не появляется «про запас».
Код без сокращений. В уроках нет «...» и «остальное допишите сами»: новые файлы приводятся целиком, изменения — точными диффами. К каждому уроку приложен архив с полным работающим проектом: распаковал → make up → make install → make migrate — и всё запускается.
Проект честно проверен. Итоговое приложение покрыто более чем сотней тестов трёх уровней, которые действительно проходят — включая интеграционные с настоящей PostgreSQL и функциональные с настоящим JWT-логином.
Что вы приобретёте. Умение вести проект от требований к работающей архитектуре; словарь и инструментарий тактического и стратегического DDD; готовый референсный проект, к которому можно возвращаться в рабочих задачах; уверенные ответы на архитектурных секциях собеседований.
Что нужно будет делать. Читать уроки, писать код вместе с ними в своём проекте, сверяться с эталонными архивами и выполнять домашние задания — они даются без готовых решений и часто «выстреливают» в следующих уроках.
Из чего состоит курс. 24 урока в шести частях:
Часть I. Фундамент и первая боль анемичной модели (уроки 1–2) — окружение, наивная реализация, разбор её проблем.
Часть II. Тактический DDD внутри одного контекста (уроки 3–10) — Value Objects, Aggregate, Repository, Domain Service, Specification, Factory, Application Layer и DTO, Policy.
Часть III. События, асинхронность, второй контекст (уроки 11–14) — Domain Events, Messenger как Event Bus, контекст Payment с портами и адаптерами, Process Manager/Saga.
Часть IV. CQRS и read-модели (уроки 15–16) — Command Bus, Query side с денормализованной проекцией.
Часть V. Внешний интерфейс приложения (уроки 17–19) — REST API, OpenAPI, аутентификация и авторизация с JWT и Voter.
Часть VI. Качество, эксплуатация, третий контекст (уроки 20–24) — пирамида тестирования, контекст Pricing и Context Map, логирование и мониторинг, кэширование, Docker/CI-CD/производительность.