Александр Яковлев PHP/GO

Александр Яковлев PHP/GO 

IT блогер

92subscribers

22posts

Symfony 6 / Урок 10 / DDD (Domain Driven Design: стратегия, тактика и практика)

Symfony 6 / Урок 10. На текущем занятии мы поговорим о предметно-ориентированном проектировании (DDD). И на практике рассмотрим как данный подход ложится на PHP фреймворк Symfony 6.
Исходники: https://github.com/alejandro-yakovlev/symfony-docker
Таймкоды:
00:00 - Вступление
00:16 - Что такое DDD?
02:16 - Стратегическое проектирование
03:10 - Концепции
03:53 - Событийный штурм
05:13 - Ограниченный контекст
06:16 - Связь контекстов
07:40 - Единый язык
08:35 - Подобласть
11:01 - Тактическое проектирование
11:25 - Структурные элементы
11:48 - Агрегат
13:03 - Спецификация
14:20 - Практика (Тестирование навыков специалистов)
19:55 - BDD
Привет, спасибо за урок, очень познавательно ! Возник вопрос как обеспечивать транзакционную целостность между различными модулями. Допустим есть какой-то абстрактный запрос на покупку чего-либо и в рамках этого запроса нужно обновить условный баланс пользователя и уменьшить количество единиц товара, кошелек пользователя и товары, на сколько я понимаю, это разные ограниченные контексты, соответсвенно разные модули и мы не можем собрать из них 1 агрегат. Спасибо заранее за ответ )
Jenia Mashoshin, привет! Зависит от требования к консистентности. Если допускается задержка в согласованности, то можно посмотреть в сторону хореографии (SAGA), когда сервисы публикуют события, обрабатывают их и при необходимости выполняют компенсирующие действия.
Предлагаю ознакомиться со статьей https://habr.com/ru/articles/769102/
Сашок Горшок, Спасибо, ознакомлюсь.
Go up