
Max
29.06.2018
08:09:05

Sergey
29.06.2018
08:13:13

Dmitry
29.06.2018
08:13:20
Почему? Ведь фактически это учет сущности Новость по разным параметрам? Т.е. у меня есть класс NewsLogger, который будет инжектить 6 gateway'ув. Есть метод log(Visitor $visitor, NewsPost $post). В этом методе я уже прогоняю по всем gateway'ем?

Google

Sergey
29.06.2018
08:13:40

Dmitry
29.06.2018
08:14:06
Есть ощущение, поэтому и спрашиваю более правильные варианты

Sergey
29.06.2018
08:14:09
ты как минимум не новости логаешь а просмотры новостей. к самой новости это косвенно относится и может быть вынесено на уровень выше (декоратором)
но мне надо понимать что там у тебя за 6 сущностей в которые ты пишешь в рамках одной операции и что это за операция. Это просмотр новости и тебе надо трекать статистику?

Dmitry
29.06.2018
08:16:13
статистику, затраты, агрегированная статистика ... Присутствует много дубликации на уровне схемы данных, но тут изменения маловероятны
Т.е. корни проблемы растут из плохо спроектированной схемы данных и с этим приходится жить пока

Sergey
29.06.2018
08:20:01
"затраты" на что?

Dmitry
29.06.2018
08:20:17
за переход на новость

Sergey
29.06.2018
08:20:27
не сильно понятнее
и все еще непонятно почему ты должен это одним классом делать

Dmitry
29.06.2018
08:22:13
закупка трафика, по utm - меткам могу определить откуда посетитель пришел. Т.е. таким образом можем оценить затраты

Sergey
29.06.2018
08:22:29
понял
главное этот кусок г изолировать, в одном классе или в нескольких - как тебе удобно

Google

Sergey
29.06.2018
08:24:13
я короч так и не понял в чем трабл. Это ж не сущности, не совсем сущности. Это агрегации метрик
можно это красиво декорацией разрулить
можно забить...
не те масштабы проблем как по мне

Dmitry
29.06.2018
08:25:19
о чем и речь, получаю класс NewsLogger, который фактически изолирован и если случится абзац с треком всего и вся - знаю где искать и править.... Ок, на счет забить, ибо сроки поджимают :)
А это вообще нормально - существование таких классов агрегаторов?

Sergey
29.06.2018
08:26:50
да
но похеру

Dmitry
29.06.2018
08:27:28
В голове еще есть мысль такая: при просмотре генерить события, а уже подписчики будут писать метрики

Sergey
29.06.2018
08:28:24

Dmitry
29.06.2018
08:35:53
я бы так и делал
это видимо самое правильное решение, ибо так все равно получится быстрее (для реализации событий прикрутил RabbitMQ) для пользователя

F01134H
29.06.2018
11:45:13
норм ли делать такую тему:
NodeValidator::valid($response->getBody())
т.е. void метод, который только и делает что исключения кидает?

Dmitry
29.06.2018
11:49:04
Тебе конкретно не нравятся исключения?

F01134H
29.06.2018
11:49:18
почему?
наоборот я делаю метод, который только их и кидает

Dmitry
29.06.2018
11:50:04
вроде тема с киданием исключения или возвратом bool из валидатора уже здесь обсасывалась. Решение - на твое усмотрение

F01134H
29.06.2018
11:50:32
окей, сенкс

Maksim
29.06.2018
11:51:07
вкусовщина. идеологически правильнее коллекцию факапов держать. Но не всегда есть смысл, поэтому исключения тоже сгодятся)

Dmitry
29.06.2018
11:51:57
Мне лично нравится получать bool от валидатора. Структурное прошлое и настоящее не отпускает

Google

F01134H
29.06.2018
11:52:02
это потом просто можно будет отрефакторить, т.к. эти валидаторы только в одном месте дергаются

Oleg
29.06.2018
14:05:24
Друзья, подскжите плз, имеет ли смысл делать для ORM Eloquent Laravel, которая Active Record репозитории?!
насколько это оправдано!?

F01134H
29.06.2018
14:14:25
????!!!!!!
Оправдано ровно настолько, насколько ты сам оправдаешь

Dmitry
29.06.2018
14:30:52
AR- это уже репозиторий

Oleg
29.06.2018
14:32:22
так отож, тем более репозитория в том виде, в котором он юзатся в доктрине мы не получим. И выходит изврат, имхо.

Artem
29.06.2018
14:33:14

Oleg
29.06.2018
14:33:15
похоже на попытку скрестить ежа с ужом

Dmitry
29.06.2018
14:33:18

Oleg
29.06.2018
14:34:13
ну зачем бизнес логику в AR пихать)

Sergey
29.06.2018
14:34:39

Oleg
29.06.2018
14:35:58
Спасибо, Сергей. А можно уточнить. Иногда - это когда?!

Sergey
29.06.2018
14:35:59
в целом если у тебя есть проблема с тем что бы грузить все в модельки AR - то либо ты выбрал не тот способ работы с данными (можно смотреть в сторону row data gateway или там другие штуки типа того же дата мэппера) либо ты выбрал не тот язык (в ruby таких проблем нет ибо все можно скомпоновать сверху)
а все эти ко-ко-ко про SRP - репозиторий не поможет соблюсти SOLID
с тестируемостью репозитории в случае AR тоже не сильно помогут

Google

Oleg
29.06.2018
14:37:07
угу

Sergey
29.06.2018
14:37:34
потому решил обмазаться штукой которая изначально задумывалась для простых проектов с минимальным количеством бизнес логики - ты должен понимать ограничения подхода
тут так де как использование дата мэппера не всегда оправдано (правда тут больше минусов только если у тебя нет готового мэппера который можно просто заюзать)
p.s. нормального мэппера в php по сути нет, доктрина говно и лучше ничего нет

Dmitry
29.06.2018
14:38:40

Oleg
29.06.2018
14:39:04
так только одна доктрина и усё ((

Sergey
29.06.2018
14:39:04

Admin
ERROR: S client not available

Dmitry
29.06.2018
14:39:24

Sergey
29.06.2018
14:39:25
но до доктрины им далеко
у нее тоже проблем дофига
доктрина это попытка сделать много всего на скороую руку. Оно как бы работает но.... если ты хочешь делать красиво она будет мешать.

Oleg
29.06.2018
14:39:55
кароч, куда ни глянь, кругом жопа )

Sergey
29.06.2018
14:40:01
с другой стороны делать красиво просто так глупо)

Igor
29.06.2018
14:40:28

Oleg
29.06.2018
14:40:48
благодарю всех за ответы

Igor
29.06.2018
14:40:53
Ну т.е. ты такой говоришь.. ищи компромисы... а по факту Elq + Doctrine все что знают и используют пока
Если есть необходимость в большой комманде

Sergey
29.06.2018
14:41:04
куда потыкаться?
ну опять же, что кроме дата мэппера и AR ты знаешь? какие СУБД ты тыкал кроме реляционных?

Google

Sergey
29.06.2018
14:41:17

Igor
29.06.2018
14:41:30
разные по факту)

Sergey
29.06.2018
14:41:53
нужна ли тебе ORM с документноориентированной базой или колончатой той же?

Igor
29.06.2018
14:41:54

Sergey
29.06.2018
14:42:00
или там чуть другие подходы к моделированию?

Igor
29.06.2018
14:42:14
Просто для именно хранения и моделирования сущностей все-таки вопрос

Sergey
29.06.2018
14:42:33

Igor
29.06.2018
14:43:08

Sergey
29.06.2018
14:43:31

Igor
29.06.2018
14:43:48

Sergey
29.06.2018
14:43:54

Igor
29.06.2018
14:43:59
Выбирать интрументы ок. Изобретать фигово

Sergey
29.06.2018
14:44:09

Artem
29.06.2018
14:44:20

Igor
29.06.2018
14:44:30

Sergey
29.06.2018
14:44:34