Cпрашивают – что такое архитектура? что такое домен? Ответ простой и очень глубокий – это язык! Domain-driven design (DDD) – это набор принципов, правил и паттернов, который позволит программе разработчиков начать говорить на одном языке с командой клиентов.
Если обратиться к википедии получим тоже, но более сложными словами.
Предметно-ориентированное проектирование (DDD) – это набор принципов и схем, направленных на создание оптимальных систем объектов. Сводится к созданию программных абстракций, которые называются моделями предметных областей. В эти модели входит бизнес-логика, устанавливающая связь между реальными условиями области применения продукта и кодом.
Предметно-ориентированное проектирование не является какой-либо конкретной технологией или методологией. DDD — это набор правил, которые позволяют принимать правильные проектные решения. Данный подход позволяет значительно ускорить процесс проектирования программного обеспечения в незнакомой предметной области.
Взято с – https://ru.wikipedia.org/wiki/Проблемно-ориентированное_проектирование
Цикл статей по (DDD) будет включать в себя примеры кода на PHP.
- [DDD] Язык
- [DDD] Модель
- [DDD] Упрощение объектной модели
- [DDD] Имлементация
- [DDD] Репозиторий
- [DDD] Репозиторий Doctrine
- [DDD] Альтернатива Doctrine
- [DDD] Сервисы и Фабрики
Все отсылки к книге Эрика Эванса – Предметно-ориентированное проектирование (DDD). Структуризация сложных программных систем.
Цитата от автора на другом ресурсе 🙂
Тема сложна лишь тем, что предлагает совершенно альтернативный взгляд на разработку ПО. Получается как бы naming convention, но не на уровне скобочек или названия переменных. А convention на уровне как мы мыслим, и как облекаем мысли о проблемах в домен, а домен реализуем в продукте.