Дичь тут только Вы несёте. DDD в PHP - бестолковая затея. Некоторая часть паттернов тупо имитируется в силу специфики работы самого PHP.noLogicOnlyWar писал(а): ↑2019.09.29, 20:10 Вам не надоело бегать по темам и нести дичь? РТФМ как говорится.
Модульность в DDD достигается с огромной болью и некоторым количеством дополнительных объектов, которые только усложняют систему. Получается уходили от сложности и к ней же возвращаемся. "Энтерпрайз" проектам вообще эти модули не облокотились 300 лет, это конкретное решение для конкретного заказчика, его никуда переносить не будут. Да и в 99% случаев такие модули будут не более, чем "переносимыми", но использоваться будут только в 1 проекте.
А Вы всегда делаете выводы только со своей колокольни. Я уже понял, что есть мнение Ваше и неверное.ElisDN писал(а): ↑2019.09.30, 00:47 Да уж... То у вас ООП без инкапсуляции, то теперь DDD с монолитами.
DDD наоборот максимально уводит от монолитов к разбиению на контексты-модули с минимальной связанностью.
Так что страшно представить, как вы с таким пониманием концепций пытались всё "делать правильно" и какой монолитный трэш при этом получался. Я бы тоже такой лапшекод не полюбил.
Именно. Посему модули в DDD с миллионами доп объектов в виде адаптеров и прочего только усложнят систему. DDD - это энтерпрайз. А в энтерпрайзе как раз и уходят к простоте, ибо такие проекты, как правило, огромные. Там куча лишних объектов "для красоты" просто не нужна. Посему и говорю, что DDD - это для сложных монолитных систем, где код явно не будет использоваться в других проектах. Зачем тогда выделение части системы в самодостаточный модуль, для которого мы будем писать адаптеры и т.п. только для того, что бы его изолировать? Ах да, нам же в крупном проекте может понадобиться его срочное отключение, забыл совсем.
Именно об этом я и пытался сказать. Можно использовать некоторые подходы, описанные в DDD парадигме. Если мы уносим управление пользователями в отдельный контекст, который многие могут назвать модулем, то это ведь не означает, что нам нужно его делать именно модулем. У нас приложение разве может отказаться от пользователей? Нет конечно. И смысл тогда этот контекст вообще изолировать? Контекст есть и можем работать с ним напрямую, не делая его абсолютно самостоятельной единицей, начиная писать для блога адаптеры, посредников и т.п., тем самым только усложняя систему, не имея от этого никакого профита. Именно это я имею ввиду, когда говорю "монолит".