Я бы уточнил - для командной работы с низкоквалифицированным персоналом.
Я давно говорил, что с фреймворками работать гораздо проще, чем с нативом, потому и очень много вакансий на них. И дело тут даже не в стоимости программиста, по большому счету нет особой разницы иметь двух-трех дорогих или десяток дешевых. Дело в текучке. Как только узнают, что проект самописный, начинают воротить нос - ай, велосипед! На самом деле просто боятся, так как привыкли и не могут без доброго дяди. В итоге либо сложно найти хорошего программиста, либо они уходят, как только становятся хорошими, так как не могут больше возиться в этом дерьме.
А беда в том, что любой фреймворк провоцирует писать лапшу. 99% проектов на биг-фреймворках - процедурные, хотя и используют объекты. А это еще более жуткая лапша, чем просто процедурка. А еще и таблицы по овер 100 полей. Что мне и досталось в наследство, ибо "сочиняли" это все несколько поколений Yii-шных "дешевых" мидлов. Кроме того, проект намертво прирос к Yii-1. Теперь приходится переписывать с нуля на Yii-2.
Однако писать канонический DDD, это высокие требования к программисту, довольно объемный код и строжайшая дисциплина, что само по себе сложно осуществить одним административным ресурсом в условиях низкой оплаты, большого коллектива, низкой квалификации и соблазнов со стороны фреймворка.
Вот и встала задача:
1. Сохранить низкий порог вхождения и невысокие требования к персоналу
2. Сделать проект прозрачным для заказчика
3. Отвязать его от фреймворка, но оставить синтаксис (см. п. 1).
4. Сделать "защиту от дурака" хотябы в плане архитектуры.
Вот тут решение с CQRS оказалось очень в строчку. Правда пришлось помудрить.
С одной стороны (чтение) все плюшки AR со связями, ленивой загрузкой и так далее, но без возможности изменения базы данных (читай: без возможности костылить и создать импеданс). С другой стороны (запись) - все прелести DDD, но без плюшек чтения (опять же без возможности костылить, сделав из сервиса God-object).
В итоге получились штатный AQ с его привычным синтаксисом с одной, и легкий datamaper без использования монструозных Доктрин - с другой. При этом сохранилась привычная плоская РСУБД.
Бонусом обязательное покрытие тестами хотя бы домена, что в условиях низкой квалификации персонала довольно важно. Без TDD доменные модели разработать крайне сложно, так что хош-нехош, пиши тесты.
Ну и слоистая архитектура. Это гораздо больше свободы в использовании сторонних библиотек. Я вообще поставил голый Yii2, без всяких Advanced. Это сохранило базовый синтаксис и дало возможность юзать любые либы. А так как там все через адаптеры, то и с другими можно работать как с Yii-шными.
Расплатой за это - высокое потребление ресурсов. Но это терпимо, так как морда у проекта - практически только чтение. К тому же все кэшируется. А админская часть очень богата бизнес-логикой, но там нет таких нагрузок.
Ну и немного больше времени на разработку. Но это сторицей окупается в обслуживании. А так как проект уже рабочий, ни кто не гонит в ущерб качеству.
И я доволен как слон. Не зря я собирал свой фреймворк, а потом пытался на нем организовать слоистую архитектуру. Если бы тогда не прокачал скилы, сейчас было бы гораздо сложнее. Доступных материалов по теме не так уж много.
Так что пишите велосипеды! Это очень полезно, всегда говорил.
_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.