Sergey
но это такое.... composer require php-di/php-di
Ale
типа да
Evgeniy
да в данном примере
Ale
тогда вопрос, почему эти методы не в классе User?
Sergey
а какие методы?
Ale
UserService
Ale
оттуда
Sergey
ну обычно UserService это процедуры для данных (User)
Evgeniy
Evgeniy
или может для User это просто valueobject ?
Ale
так а почему он value object?
Evgeniy
user -> valueobject
Ale
я думал он сущность)
Evgeniy
так потому что принято в приложение?)
Evgeniy
зависит от ситуации
Evgeniy
полно деталей
Ale
ну я и спрашиваю детали
Evgeniy
просто круто быть всем таким идеалистом и не писать godobject
Ale
когда это может быть нужно
Evgeniy
но если посмотреть все мы их писали
Evgeniy
все мы юзали singleton и тд
Ale
singleton != god object
Evgeniy
все мы жили без php-di или pimple и подобного
Evgeniy
я знаю что !=
Evgeniy
у большинства на проекте есть косяки или недоработки
Evgeniy
если было бы идеально то мы бы над проектом не работали потому что он был бы готов
Evgeniy
и делать вид типо нам абстрактно видней как лучше делать тоже не всегда
Evgeniy
потому что делая архитектуру по теории потом команда начинает все делать через одно место стоит уйти в отпуск
Evgeniy
а в вашем приложение способны разобраться только один человек(автор) ну и теоритически Фаулер или чьи видео использовали
Evgeniy
правильного ответа нет, есть решение удовлетворяющее требования
Evgeniy
и сегодня оно подходит завтра нет
Evgeniy
а попытка предугадать все возможные ситуации может не окупиться
Evgeniy
потому что могут через месяц убрать модуль так как им пользователи не пользовались или не выгодно и тд
Sergey
просто круто быть всем таким идеалистом и не писать godobject
мне кажется что мы по разному трактуем этот термин. Как ты определяешь что "это god object"?
Evgeniy
https://ru.wikipedia.org/wiki/%D0%91%D0%BE%D0%B6%D0%B5%D1%81%D1%82%D0%B2%D0%B5%D0%BD%D0%BD%D1%8B%D0%B9_%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82
Evgeniy
то что говорили тут вы сейчас будете выводить не в god object а в то что это facade
Evgeniy
для приложения а уже части кода выполняются там нужные
Sergey
у фасада почти нет своей логики
Evgeniy
но что мешает использовать напрямую нужный объект а не facade ?
Sergey
https://ru.wikipedia.org/wiki/%D0%91%D0%BE%D0%B6%D0%B5%D1%81%D1%82%D0%B2%D0%B5%D0%BD%D0%BD%D1%8B%D0%B9_%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82
вики все читали. Меня интересует что для тебя god object
Sergey
ибо как я понимаю для тебя это любой объект с чуть большей зоной ответственности чем нужно
Evgeniy
понятие "чуть большей" субьективно
Sergey
это тоже понятно)
Evgeniy
и на вики в первом предложение вместо "чуть больше", "слишком много" тоже в кавычках
Sergey
можешь мне привести вот твои личные границы
Evgeniy
зависит от приложения
Evgeniy
и от ситуации
Sergey
ну тогда о чем мы вообще говорим
Evgeniy
грубо говоря
Sergey
https://cs7054.vk.me/c637330/v637330551/28d57/H8OZToiJQ2c.jpg
Evgeniy
если в приложение есть более адские вещи и проблемы
Sergey
надо просто пробовать находить баланс с couling и coheasion
Evgeniy
то понятие слишком много, не достигается почти никогда
Sergey
что не просто само по себе
Evgeniy
именно
Evgeniy
именно если на проекте ад и view в перемешку с sql
Evgeniy
и с бизнес логикой
Evgeniy
то ты как то забьешь на объект который в стороне и делает все что тебе надо
Evgeniy
и называется он как нибудь CoreService, AppService и тд
Evgeniy
тебя он вполне устроит и ты будешь мешанину шаблонов и sql разделять
Evgeniy
но когда в приложение все сделаешь удобно можно и этот объект посмотреть и возможно разделить
Evgeniy
или тебя позвали на битриксе что нибудь пофиксить, в шаблоне там что то поменять, получаешь проект смотришь и со словами ебать тут нет ddd,cors, solid, еще я привык к doctrine, php-di, phpunit (coverage 100%), behat и тд
Evgeniy
и начинаешь все это приводить в порядок))
Evgeniy
но только нафига?)
Sergey
ну это совсем другой разговор)
Sergey
это работа с жестким легаси)
Sergey
и плаванье в говнокоде
Evgeniy
ну похорошему от такого надо сразу бежать
Evgeniy
bitrix, joomla хорошие стопслова)
Sergey
я знаю как это бывает
Sergey
плавал
Sergey
"тип там только чуть-чуть подправить, надо зарелизить уже"
Sergey
"фрилансеры делали на joomla"
Evgeniy
да
Evgeniy
и в вариенте с битриксом любое решение сделанное через godobject, singleton или даже goto
Evgeniy
является допустимым
Evgeniy
даже заявление по собтсвенному на русском, тоже допустимое решение.