@prophp7

Страница 1213 из 1387
Maksim
30.07.2018
09:16:21
просто странный подход к вопросу. Зачем делать задачи, которые часами молотятся?

цена отказа в их обработке как-то великовата

Dmitry
30.07.2018
09:17:38
потому что есть такие задачи, обрабатывают стрим, если не дообработали по причине дохлого консьюмера - нужно подхватить другим консьюмером

Maksim
30.07.2018
09:17:54
где-то грустят эрлангисты)

Google
Maksim
30.07.2018
09:18:34
ну для таких "длинных" задач явно не кролик нужен) а что-то журналируемое (читай, кафка). когда ты в любой момент времени можешь получить уже полученную сообщеньку

Dmitry
30.07.2018
09:19:26
нету кафки, есть кролик

Maksim
30.07.2018
09:19:31
ну вот держать сообщение без ака часами - нихера не правильное приготовление кролика)

Tex
30.07.2018
09:20:21
что ты думаешь о напалме? зло или нет?
я это сравнение в рамочку сохраню, пожалуй

Maksim
30.07.2018
09:20:34
твоё гениальное решение слишком гениальное) суть вопроса не о том была)

Sergey
30.07.2018
09:20:51
ну ты часто юзаешь у себя в коде их?
для начала ты должен дать определение геттеру и сеттеру) так что бы они не поддавались иносказаниям)

геттеры частенько для UI делаю, потому что я ленивая жопа. Сеттеры крайне редко но бывает иногда.

F01134H
30.07.2018
09:22:19
ну, геттер позволяет получить приватное свойство объекта извне, сеттер позволяет установить это свойство

Maksim
30.07.2018
09:22:47
сеттеров нет, я ленивая жопа, поэтому сразу вхерачиваю рефлексией) но это всякие ДТОшки и мир не страдает :)

Sergey
30.07.2018
09:22:54
Tex
30.07.2018
09:23:01
а с ним не всё так просто

Google
F01134H
30.07.2018
09:23:59
геттеры и сеттеры по сути позволяют создать контроль над состоянием объекта

Maksim
30.07.2018
09:25:16
к контролю над состоянием они отношения не имеют. Это скорее призыв всем желающим нагадить в стейте

Dmitry
30.07.2018
09:25:22
Sergey
30.07.2018
09:25:41
ну да
ну нет, потому что тут нет уже явной связи с приватными свойствами)

F01134H
30.07.2018
09:25:58
согласен, про приватные я зря сказал

Sergey
30.07.2018
09:26:03
нет, не зря

в этом суть

сеттер (в моей трактовке) - это доступ к свойству (одному) на запись

Sergey
30.07.2018
09:26:46
если у тебя метод делает что-то с несколькими полями - он уже не сеттер а просто метод

в этом большая разница

F01134H
30.07.2018
09:26:54
Согласен

В языках с нативной поддержкой геттеров и сеттеров только с одним свойством можно работать

Sergey
30.07.2018
09:27:14
даже банальные rename вместо setName уже отличается

ну то есть моя мысль в том что проблема росте из разделения на геттеры, сеттеры и просто методы

Roman
30.07.2018
09:28:00
имхо, сеттер это состояние души. Метод может всего лишь менять значение одного поля но не быть сетером, ну вот rename хороший пример как раз

Tex
30.07.2018
09:28:36
геттеры и сеттеры по сути позволяют создать контроль над состоянием объекта
Вот здесь и нюанс. Если это классический сеттер (как иде генерит) - ты по факту оставляешь и доступ к стейту, причём полный. и заодно полностью открываешь структуру объекта. Более, кхм, кастомные сеттеры типа того же setName, который фесор привёл, задают контракт для изменения объекта, засчёт чего сложнее получать невалидный стейт. ну и семантика, все дела. rename > setName.

Sergey
30.07.2018
09:28:37
сеттер это не более чем договоренность - что мол вот если у меня есть свойство name то для доступа на запись (если я таковой предоставляю) я сделаю тебе метод setName

Google
Tex
30.07.2018
09:29:52
но сравнение с напалмом всё равно прекрасно. если задача из серии "сделайте херню со сроком вчера" - можно взять напалм и херануть от души. последствия такие же как после напалма, править и разбираться в коде желания никакого.

Sergey
30.07.2018
09:29:59
и нужны такие договоренности когда ты хочешь иметь контроль (в отсутствии других возможностей на уровне языка) к какому состоянию объекта кто имеет какой доступ.

Sergey
30.07.2018
09:31:00
с таким определением намного проще потом переходить к теме "а зачем вообще нам давать доступ к стэйту объекта кому-то извне")

на запись в этом нет вообще никакого смысла, на чтение - есть нюансы с тем как используется значение - если оно потом в if запихивается (и не для проверки на null) то это уже попахивает

еще пару раз встречал людей которые разделение на геттеры и сеттеры использовали в виду того что не знали про CQS. Ну мол, у них геттер это любой метод который что-то возвращает, а сеттер любой метод который мутирует состояние)

с такими формулировками очень сложно обсуждать что как и почему

Dmitry
30.07.2018
09:34:24
У меня такой вопрос: пусть у меня что-то наподобие "агрегата" Новость, есть агрегат "Реклама", которая может быть сделана на основе новости (а может и нет). Для формы создания я должен вытягивать пул новостей. Как правильно тащить новости: тащить из репы Новостей, дублировать в репе Реклама, но со своей семантикой или разруливать ивентами?

Dmitry
30.07.2018
09:35:23
Т.е. ивенты остаются

Sergey
30.07.2018
09:35:43
ну я больше говорил о том что над этими двумя штуками кто-то сверху должен оркестрацией заниматься кто уже об этой связи знает

но опять же надо думать. иногда так не выходит

p.s. ивент листенеры подходят на роль штуки сверху

Dmitry
30.07.2018
09:38:03
p.s. ивент листенеры подходят на роль штуки сверху
я про них и думал. Еще момент: может ли запущенный ивент возвращать результат? Например, подключаемые модули должны вносить свои пункты в меню. Соответственно что-то кидает ивент, подписчики заполняют данными...?

Roman
30.07.2018
09:39:55
BaseController хреновая тема правда ж? куда мне засунуть общие функции типа getFormErrorMessages(FormInterface $form) - cоздать валидатор сервис?

Dmitry
30.07.2018
09:40:57
Composition over Inheritance

Google
Roman
30.07.2018
09:47:39
пропонуєш вирішити це трейтом?

Sergey
30.07.2018
09:47:57
но если можешь хапихнуть что-то в сервис - лучше так и сделать)

Roman
30.07.2018
09:48:14
пропонуєш вирішити це трейтом?
лучше уж базовый контроллер...

Sergey
30.07.2018
09:48:35
суть в том что в контроллерах не должно быть логики особо)

а если там нет логики то похеру

нет логики -> нет if-ов

кода там может быть до жопы

чисто координация действий

Roman
30.07.2018
09:52:30
ок спс

Alexander
30.07.2018
10:18:49
А кто что использует для конвертации DTO <=> Entity?

Maksim
30.07.2018
10:19:10
руки

Alexander
30.07.2018
10:19:42
Наткнулся на https://github.com/mark-gerarts/automapper-plus - никто не использовал?

руки
А где происходит конвертация? $entity->createDTO(); ?

Maksim
30.07.2018
10:20:38
ровно как и где происходит обратное

Tex
30.07.2018
10:42:58
ровно как и где происходит обратное
таки сущность генерит DTO и заполняется из DTO? почему не наоборот?

Maksim
30.07.2018
10:44:17
таки сущность генерит DTO и заполняется из DTO? почему не наоборот?
наоборот?) плодить пачку геттеров?) такое себе. Это потом плохо закончится)

Tex
30.07.2018
10:47:12
зато сущность не знает о существовании дто, по идее это не её зона ответственности, кмк ну с Entity => DTO соглашусь, можно конечно упороться по идее выше и сделать что-то вроде getInfo():array у сущности и лепить DTO из этого массива, но тогда этот массив уже суть есть DTO и в чём смысл. а вот DTO => Entity в самой Entity как-то, яхз. почему-то не нравится, но не могу объяснить почему.

Google
Maksim
30.07.2018
10:48:52
dto -> entity = Entity::fromSomeDto(SomeDto) ок

Sergey
30.07.2018
11:27:18
dto -> entity = Entity::fromSomeDto(SomeDto) ок
нуууууууууу..... навееееерное даааа.... мне больше билдеры нравятся)

ну и да - на запись и начтение DTO часто разные нужны)

p.s. часто слои переоценены, часто dto на чтение вообще не нужны особо, ну мол классы

Sergey
30.07.2018
11:28:59
нет use - нет проблем?
нет, весь вопрос только в направлениях зависимостей

кто когда и с кем меняется и к чему относится

Artem
30.07.2018
11:29:09
Maksim
30.07.2018
11:29:19
нуууууууууу..... навееееерное даааа.... мне больше билдеры нравятся)
зависит от смысла той дтошки. Если это команда какая, почему бы и да

Sergey
30.07.2018
11:29:33
а билдер через reflection заполняет сущность?
мне нравилось билдер в конструктор передавать. Это было бы удобнее будь в php поддержва package level visibility

вот в java билдеры вообще красиво

Dmitry
30.07.2018
11:31:58
да, согласен. но это важный момент как по мне)
Уххх, если бы оборачивать все мысли в код и выносить в GIST, то не придется периодически возвращаться к обсасыванию обсасонной темы + к наглядности +1005000 и -1005000 к хаосу

Страница 1213 из 1387