В предыдущих главах мы рассмотрели три основных строительных блока наших областей: DTO, действия и модели. Сегодня мы сделаем передышку от низкоуровневых технических вещей и сосредоточимся на философской стороне: как…
Паттерны проектирования
Состояния. Предметно-ориентированный Laravel
Паттерн состояния – это один из лучших способов добавить в модели поведение, зависящее от состояния, сохраняя при этом их чистоту. В этой главе мы поговорим о шаблоне состояния…
Модели. Предметно-ориентированный Laravel
В предыдущих главах я говорил о двух из трех основных строительных блоков каждого приложения: DTO и действия – данные и функциональность. В этой главе мы рассмотрим последний фрагмент, который…
Действия. Предметно-ориентированный Laravel
Теперь, когда мы можем работать с данными в безопасном типизированном и прозрачном виде, нам нужно начать что-то делать с ними. Точно так же, как мы не хотим работать…
Шаблон проектирования Спецификация
Паттерн “спецификация” предоставляет возможность описывать требования к бизнес-объектам, и затем использовать их (и их композиции) для фильтрации не дублируя запросы. Что такое спецификация? В Википедии этот паттерн описан так:…
Предметно-ориентированный Laravel
Люди мыслят категориями, наш код должен быть отражением этих мыслей. Во — первых, я не придумал термин “домен” – я получил его из популярной парадигмы программирования DDD, или…
Принцип разделения интерфейса
Разделение интерфейса . . . Хм, это звучит не так уж плохо, не так ли? Похоже, это как-то связано с разделением . . . МММ, разделяемся . . . межфазные границы. Мне просто…
Принцип подстановки Барбары Лисков
Лисков-что?? Эта штука звучит как что-то прямо из учебника органической химии. Это может даже заставить вас пожалеть о том, что вы выбрали разработку программного обеспечения в качестве карьеры, потому что…
Принцип открытости/закрытости
Я должен сказать, что тот, кто придумал определения этих принципов, конечно, не думал о менее опытных разработчиках. То же самое происходит и с принципом “открыто-закрыто”, и те, до кого…
Паттерн проектирования Спецификация
Цель Строит четкую спецификацию бизнес-правил, где объекты могут быть проверены. В составе класса спецификации существует один метод, называемый isSatisfiedBy ,который возвращает либо true, либо false в зависимости от того, удовлетворяет ли данный объект…