Anonymous
спор ни о чём.
Aleksey
ой все, вы правы )
Anonymous
да-да.
Aleksey
«сервис - это часть доменного слоя, в методологии DDD, который как раз и создан умными дядьками для грамотного проектирования и поддержки больших систем»
иногда полезно считать кол-во шагов для решения задачи, а не слепо слушать дядек )
KoJIT
Dmitry
Anonymous
о чём спор-то?
Dmitry
ни о чем :)
Anonymous
сотрясаем воздух? Можно с вами?
Иван
Да смысла нет спорить, спагетти код быстрее написать, если приложение однодневка с функционалом CRUD. Задумываться об архитектуре начинаешь тогда, когда есть печальный опыт разростания таких проектов, с которыми потом ничего уже не сделать из - за их неповоротливости
Иван
вот тогда и слушать дядек начинаешь, что такое DDD, Solid, и т.д.
Dmitry
короче надо создать конференцию с рассмотрение конретного кода, и там обсудить слабые и сильные строны разных подходов, и пути решения проблем :)
Anonymous
ну обычно как, сначала быстренько прототип — стало расти, тихонько рефакторинг с постепенным «усложнением».
Anonymous
а не бросаться в крайность — говнокодить или сразу по феншую убер сложно.
Dmitry
Иван
Иван
всем посмотреть советую
Иван
кто не смотрел)
Dmitry
там в конце интересно, про проблеммы ;)
Dmitry
и про то когда оно нафиг не надо
Dmitry
Aleksey
ну а что по факту
какая то херь в миграции
изуродованный конороллер
зато по DI DDD и как сказали дядьки
вместо того чтобы ОДИН раз настроит сервис как копонент и забыть о нем и просто использовать
Aleksey
каждую задачу надо рещать 1 раз
Aleksey
но это по опыту моих больших проектов код которых не вызывает кровотечений, но возможно я не прав )
Иван
Dmitry
Aleksey
»а завтра тимлид скажет "переезжаем с yii2 на симфони", и начнешь задачу решать второй раз, куда поместить код из компонента»
после этого надо отрубать руки, тк надо заранее думать на чем писать, а не пытаться делать универсальное решение (это тоже типичная ошибка со слов дядек)
Aleksey
есть примеры твоих приложений на github - они все коммерческие, поэтому в открытом доступе нет
Иван
Изолировать бизнес логику полезно, а по другому эта логика будет размазана по всему приложению. Я не хочу переубеждать, и от своей позиции не откажусь. Каждый кодит так, как считат нужным. Я буду дядек слушать на опыте, дабы не оступиться на пути. Не претендую на звание паттерностроителя, чтобы никого не считать нужным слушать
Aleksey
ты путаешь бизнес логику и подключение классов с этой самой бизнес логикой
Иван
нет
Aleksey
вместо того чтобы по максимуму использовать удобство yii2 ты уже заранее готовишься перехать на симфони
Aleksey
а когда переедешь на сифони не будешь использовать ее фишки что потом переехать еще куда нибуть
Dmitry
Иван
мне не нужен компонент с сервисом обыденным) их десятки, таких сервисов в приложении. Каждый выносить в компонент?
Иван
я использую компоненты
Иван
но выношу в них что - то более глобальное, чем просто сервис на одну - две задачи, содержащий только логику
Dmitry
Anonymous
только отошёл, как у вас тут веселье.
Dmitry
Anonymous
почему-то Алексей думает, что у Ивана 1 Севрис.
Dmitry
надо выключать телеграм
Иван
Алексей имеет ввиду компонент фреймворка, а я говорю про класс - сервис, который содержит методы - задачи, который сервис исполняет. Безусловно можно сервис запихнуть в компонент, и получать его через Yii::$app->myService, но "при переезде на симфони" у тебя не будет Yii::$app, а DI будет!
Anonymous
но внезапно! У него их несколько.
Anonymous
и пихать это в компонент? Ну так себе решение.
Anonymous
Тестирование? Не, не слышал.
Anonymous
Как ты свой компонент-то протестируешь потом?
Dmitry
Anonymous
в частности ДИ удобно тем, что ты можешь эти маленькие кусочки потестировать безболезненно.
Anonymous
но Алексей похоже с этим не сталкивался, поэтому в упор не понимает полезности DI.
Иван
Anonymous
да пофиг.
Anonymous
Dmitry
Dmitry
точно так же создаешь
Dmitry
вот из доки Компонентами приложения могут быть любые объекты.
Иван
вообще я ж говорю, в компонент я что - то более глобальное лучше запихну. А у этого чего - нибудь уже могут быть и свои тесты
Borys
LOL вот это срач развели :)
Borys
По сабжу, миграция переопределяет контроллер?
Borys
Если нет, то ты можешь сделать controller injection, не?
Borys
Borys
лупим все через Yii::$app
Borys
Dmitry
на этом и сошлись :)
Borys
Я думаю в этом огромная проблема Yii2 как фреймворка так и комьюннити
Borys
Фреймворк не диктует нормальную архитектуру из документации
Borys
В итоге почти все проекты которые ко мне приходили с модульностью, логикой в view и т.д.
Иван
Anonymous
Anonymous
если мне память не изменяет
Borys