В PHP-проектах часто используют классы под конкретные сценарии приложения. Где-то их называют Action, где-то UseCase, где-то ApplicationService, где-то CommandHandler. Названия разные, но идея одна: отдельный класс описывает конкретное…
DDD
Агрегаты в Domain-Driven Design: что это и как проектировать без ошибок
Агрегаты в Domain-Driven Design часто понимают неправильно. Разработчик видит таблицы orders, order_items, products, users, переносит эти связи в объектную модель один к одному и считает, что теперь у…
Domain-Driven Design: Основы, Ключевые Понятия и Архитектурные Границы
📘 Введение Domain-Driven Design (DDD) — это не просто набор паттернов, а стратегический подход к проектированию сложных бизнес-приложений. Он помогает выстроить систему вокруг предметной области, а не технических…
Стоит ли делать валидацию прямо в Entity? Ответ изнутри DDD
Когда мы говорим о Domain-Driven Design, один из частых вопросов, которые я слышу: “А нужно ли вообще делать валидацию в Entity? Это же бизнес-логика, а не проверка форм.”…
Архитектура программного обеспечения – принципы, методы и стили
Разработка правильной архитектуры для решения проблемы – это скорее искусство, чем наука, потому что это во многом зависит от понимания постановки проблемы, контекста и того, где, по нашему…
Как стать свободным от фреймворков? Простые рецепты
Если вы хотите писать приложения, которые можно поддерживать в долгосрочной перспективе, вам нужно абстрагироваться от вашего фреймворка, ORM, HTTP-клиента и т. д. потому что ваше приложение переживет их всех….
Фабрики тестирования. Предметно-ориентированный Laravel
В этой статье мы рассмотрим возможность управлять данными домена для тестов. Тестовые фабрики в Laravel-это известная концепция, хотя во многих областях она отсутствует: они не очень гибки и также…
Модель представления. Предметно-ориентированный Laravel
В сегодняшней статье серии Предметно-ориентированный Laravel мы поглубже погрузимся в прикладной уровень. Основной тенденцией на протяжении всей серии является сохранение кода чистым, лаконичным и управляемым. Эта статья не будет отличаться,…
Введение в слой приложения. Предметно-ориентированный Laravel
Еще в главе 1 я утверждал, что одной из характеристик доменно-ориентированных проектов Laravel является следующее: [ … ] самое важное, что вы начинаете думать в группах связанных бизнес-концепций,…
Управление доменами. Предметно-ориентированный Laravel
В предыдущих главах мы рассмотрели три основных строительных блока наших областей: DTO, действия и модели. Сегодня мы сделаем передышку от низкоуровневых технических вещей и сосредоточимся на философской стороне: как…