@symfony_php

Страница 462 из 1418
Sergey
07.12.2017
09:18:28
Да не про твиг.
а про что? зачем тебе доставать данные из сущности помимо UI?

Dinar
07.12.2017
09:18:41
но ты с твига начал)
Ну начал - не значит что только его имел ввиду. :)

Для логики.

Google
Sergey
07.12.2017
09:19:36
p.s. мы сейчас только про геттеры, это штуки которые имеют префикс get и являются отображением внутренней структуры класса. Есть еще query методы, которые обычно имеюот адекватное название и позволяют выполнить запрос. В некоторых ситуациях метод может просто поле вернуть, но клиентскому коду без разницы

Для логики.
почему эту логику нельзя поместить прямо в сущность? зачем данные доставать?

Dinar
07.12.2017
09:19:55
Могу доггер повесить на доступ к полю. Могу вообще все что захошь! :))

Sergey
07.12.2017
09:21:00
Ну логика может быть завязана на разных сущностях.
часть тебе одна сущность сделает, часть другая. Все они будут входить в один агрегат. У агрегата будет корень

и через этот корень ты будешь просить что-то сделать

а еще - объекты значения, и понеслось

Sergey
07.12.2017
09:21:45
если они тебе не понятны - тогда вопрос снимается

Dinar
07.12.2017
09:22:37
Беру я сущность и сижу угадываю как разработчик назвал метод, который поле name меняет. :)

Понятно что я могу usages посмотреть.

Sergey
07.12.2017
09:23:06
Беру я сущность и сижу угадываю как разработчик назвал метод, который поле name меняет. :)
1. тебе IDE подскажет кто меняет это поле 2. тебе название метода подскажет зачем это происходит

Google
Dinar
07.12.2017
09:23:17
Но это займёт время примерно в n раз больше.

Sergey
07.12.2017
09:23:26
с геттерами и сеттерами теряется информация "зачем" - это важная информация

Dinar
07.12.2017
09:23:39
1. тебе IDE подскажет кто меняет это поле 2. тебе название метода подскажет зачем это происходит
Название метода я могу и не найти пока все методы не просмотрю.

Sergey
07.12.2017
09:23:45
и сэкономит тебе пару минут на то что бы понять что делает код

Dinar
07.12.2017
09:23:46
Sergey
07.12.2017
09:24:04
Название метода я могу и не найти пока все методы не просмотрю.
ты сейчас делаешь предположения, насколько я понимаю ты с таким кодом не работал

Dinar
07.12.2017
09:24:06
Sergey
07.12.2017
09:24:59
я работал и с таким и с таким, и я умею быстро писать код с логикой в сущностях, дробить сущности. Да, это сложно. Особенно первое время и у тебя точно первое время будет проседание по производительности труда. Но потом - разницы никакой нет

Dinar
07.12.2017
09:25:05
ты сейчас делаешь предположения, насколько я понимаю ты с таким кодом не работал
Ну вот беру я скажем ArrayCollection. И вот если я доку не читал. И названия методов не знаю - буду перебирать методы.

Либо гуглить.

Sergey
07.12.2017
09:25:28
Ну вот беру я скажем ArrayCollection. И вот если я доку не читал. И названия методов не знаю - буду перебирать методы.
а зачем тебе перебирать методы? ты должен знать что ты хочешь сделать перед тем как юзать ArrayCollection

Dinar
07.12.2017
09:25:31
Либо просто в массив превращать.

Ну пример не лучший. Но чтобы идея была понятна.

Sergey
07.12.2017
09:25:55
или ты про "вот у меня есть сущность, хз зачем она мне, буду просто смотреть что она может, может чего пригодится"

обычно все же не так происходит

Dinar
07.12.2017
09:26:15
Ну либо например я юзаю стороннюю.

Sergey
07.12.2017
09:26:25
сущность?)

типа из /vendors?)

Dinar
07.12.2017
09:26:40
Да блин. Ну не понимай буквально меня.

Google
Sergey
07.12.2017
09:26:50
а как мне тебя понимать?

Dinar
07.12.2017
09:26:51
Это абстрактный пример просто чтобы идею понять.

Sergey
07.12.2017
09:26:59
но я не понимаю идею

так что давай конкретнее

Dinar
07.12.2017
09:27:05
Типа из vendors

Sergey
07.12.2017
09:27:14
у меня нет сущностей в vendors

а если и есть - я напрямую с ними не работаю

Dinar
07.12.2017
09:27:31
Ну не сущность.

Почему именно сущность?

Sergey
07.12.2017
09:27:43
окей, сервис. У тебя у сервиса геттеры и сеттеры есть?

Dinar
07.12.2017
09:27:52
Ты ж предлагаешь логику в сущности помещать.

Sergey
07.12.2017
09:27:57
да, именно так

Dinar
07.12.2017
09:28:20
Ну и соответственно тебе надо будет смотреть что сущность умеет.

На самом деле у меня палец устал печатать на телефоне. :₽

Sergey
07.12.2017
09:28:42
если мне эта сущнсть понадобилась - я уже знаю что она умеет или хотя бы предполагаю из названия и того что мне надо сделать.

иначе мне эта сущность не понадобилась бы

Dinar
07.12.2017
09:29:04
Ну вот пришёл ты на проект.

И тебе говорят надо поменять имя юзера.

Sergey
07.12.2017
09:29:48
cmd + o - User - ищу поле name - делаю find usage

Dinar
07.12.2017
09:29:59
Ты будешь искать rename, changeName или setName?

Google
Andrey
07.12.2017
09:30:01
И тебе говорят надо поменять имя юзера.
И у тебя у юзера setLastName(), setFirstName(), setSecondName()

Sergey
07.12.2017
09:30:12
это к слову хороший пример)

для бизнеса эти три поля - имя

Dinar
07.12.2017
09:30:38
И у тебя у юзера setLastName(), setFirstName(), setSecondName()
И все предсказуемо и логично.

Sergey
07.12.2017
09:30:41
а ты подумаешь только о first name

или забудешь учесть middle name какой

или забудешь еще чего

Andrey
07.12.2017
09:31:07
И все предсказуемо и логично.
я с этим живу, это мне боль приносит

Dinar
07.12.2017
09:31:21
Не понимаю. Почему я забуду? А rename мне чем поможет?

Admin
ERROR: S client not available

Sergey
07.12.2017
09:31:24
и у тебя в итоге для того что бы поменять имя надо сделать 3 вызова методов. А еще веселее становится когда эти три вызова надо сделать в строгой последовательности

он будет явно говорить о том что "имя" это все вот это

Dmitriy
07.12.2017
09:31:59
а если ваще NameVO

Sergey
07.12.2017
09:32:09
а если ваще NameVO
да, это было бы шикарно)

Dinar
07.12.2017
09:32:22
Но

Хотя нет.

Dmitriy
07.12.2017
09:33:07
сущности в шаблонах это боль боль.. проходили через такое

Google
Dinar
07.12.2017
09:33:17
Не проходил. :)

Dmitriy
07.12.2017
09:33:18
прогеры потом говорят "проще переписать, чем переделать"

а потом переписывают также )

Dinar
07.12.2017
09:33:43
Сущности в API - боль. А в шаблонах - нет.

Все происходит в рамках одного реквеста на одном ПХП. В том же процессе.

Sergey
07.12.2017
09:35:14
Не проходил. :)
все бывает в первый раз)

Dinar
07.12.2017
09:35:25
Ну возможно. :)

Dmitriy
07.12.2017
09:35:26
Ну и если у тебя нормальная дтошка в твиге, то у тебя нет проблем с автокомплитом

Sergey
07.12.2017
09:35:26
Dinar
07.12.2017
09:35:31
Я все допускаю.

Ну у меня боли не было.

Как станет, я знаю как действовать.

Sergey
07.12.2017
09:36:06
Ну у меня боли не было.
давай по другому - юнит тесты пишешь? которые не на phpunit а настоящие изолированные тесты?)

Dmitriy
07.12.2017
09:36:19
когда у нас была эта боль мы ее тоже не признавали какое-то время )

Dinar
07.12.2017
09:36:19
Допускаю, что я просто не знаю, что можно круче. :)

Sergey
07.12.2017
09:36:21
отойдем немного от view

Sergey
07.12.2017
09:36:36
Да.
мокаешь сущности?

тестируешь геттеры/сеттеры?

Dinar
07.12.2017
09:36:54
Что ты имеешь ввиду изолированные а не PHPUnit?

Sergey
07.12.2017
09:36:58
как ты сервисы с логикой тестируешь в изоляции от сущностей и прочего?

Что ты имеешь ввиду изолированные а не PHPUnit?
это когда ты тестируешь поведение в изоляции. подменяя зависимости и тд.

Страница 462 из 1418