Применение DDD-методологии в PHP Александр Новиков

реклама
Применение
DDD-методологии
в PHP
Александр Новиков
[email protected]
Единый язык
Источник
данных
Дэшборд
Виджет
Событие
Действи
е
Изоляция предметной области
 Вынести вспомогательный код
 Очертить границу модели
Преимущества
предметно-ориентированного
проектирования




реализация сложной бизнес-логики
повышенная прикладная ценность приложения
быстрое обнаружение несоответствий ТЗ
ясные приоритеты при распределении ресурсов проекта
Смешение языков помешало
построить Вавилонскую башню
браузер
контроллеры
модель
предметной
области
Объекты
доступа к
данным
база
данных
Входящий ассоциативный массив
Исходящий ассоциативный массив
Марка не может сама себя
напечатать, продать,
положить в альбом или
порвать на части
Обязанности коллекции сущностей
C
создать новую сущность и присвоить ей уникальный ID
R
найти сущность по ID или другим свойствам
U
извлечь из сущности состояние и сохранить его
D
уничтожить ненужную сущность
Фабрика фабрик
Слой, содержащий модель предметной области,
выполнен в виде фабрики коллекций.
Каждая коллекция является фабрикой объектов.
Объекты представляют собой понятия
предметной области.
Сущность
Особенности сущностей
 время жизни составляет несколько сессий
 качественно может не отличаться от других экземпляров
 имеет идентификатор
Объект-значение
Особенности объектов-значений
 срок жизни не выходит за рамки одной сессии
 не изменяет состояние
 может использоваться для передачи сообщений между
объектами
 может входить в качестве атрибута в состав сложных объектов
(агрегатов)
 допускает денормализацию в базе данных
Агрегат
Подключение частей к агрегату
сущность
Служба
Многоярусная
архитектура
Управление
Модель
Хранилище
Сервисы
Юнит-тестирование
объекты-значения
сущности
коллекции
агрегаты
службы
Рефакторинг
 Перенос вычислений и сложной логики принятия решений в
отдельные объекты-значения
 Объединение сходных сценариев внутри службы
 Переименование методов и свойств
 Перегруппировка сборных объектов
Благодарю
за внимание
Скачать