
Max
10.02.2018
21:36:28

Sergey
10.02.2018
21:36:43

Bohdan
10.02.2018
21:37:00
это да, бывает сложно сориентироваться
но это вопросы к тем, кто реализовал

Max
10.02.2018
21:37:01
ну не обязательно в одном, как получится)

Google

Sergey
10.02.2018
21:37:04
а, ну я понял, когда одна какая-то "логика" размазана по сущностям потому что это "процесс" а не логика
и иногда можно сделать красиво

Max
10.02.2018
21:38:30
ты не рассматриваешь свою бизнес логику в виде объектов
вот и все)

Bohdan
10.02.2018
21:38:49

Sergey
10.02.2018
21:39:08
как?
надо придумать юзкейс)

Max
10.02.2018
21:39:45
ну в идеале твое приложение это модель бизнеса

Sergey
10.02.2018
21:40:01
но это мелочи

Google

Sergey
10.02.2018
21:40:15
модель бизнеса... твое приложение это только частица бизнеса0

Max
10.02.2018
21:40:26
а в реале, это приложение для манипуляции с данными

Sergey
10.02.2018
21:40:37
как?
вообще - через ивенты жизненного цикла сущностей можно пробрасывать разные штуки, например сделать не сервис а коллекцию какую-то которая предоставляет к внешним данным доступ

Max
10.02.2018
21:40:40

Sergey
10.02.2018
21:40:51

Bohdan
10.02.2018
21:41:07
надо придумать юзкейс)
начал писать юзкейс, вспомнил, что он в принципе ложится в сущности, но чуть запарно (расчет доступности объектов недвижимости по заданной дате)

Sergey
10.02.2018
21:41:50

Max
10.02.2018
21:41:50
я тебя понял)
так что, как по мне, это основная причина почему люди делают так

Sergey
10.02.2018
21:42:15
вообще на самом деле похрену где эта логика будет лежать, пока не она не начинает дублироваться и пока вы не начинаете за каждым использованием сущности тащить еще вспомогательный сервис

Bohdan
10.02.2018
21:42:32
в твоем варианте да
но я стараюсь обходиться без этих ивентов
я их пока не до конца освоил + завязка лишняя на доктрину

Max
10.02.2018
21:42:33
вот я когда-то докладик смотрел

Sergey
10.02.2018
21:42:42

Max
10.02.2018
21:42:59
какой-то джавист рассказывал, про оверинжинириг

Sergey
10.02.2018
21:43:32

Sergey
10.02.2018
21:43:52

Max
10.02.2018
21:43:52
ну суть сложно и архитектура должна идти от бизнеса

Sergey
10.02.2018
21:44:02
и если этот метод не добавит читаемости коду, то нахер

Max
10.02.2018
21:44:15
если нам нужно сделать приложение для конфы, про которое потом забудут
нах нам архитектура)

Google

Sergey
10.02.2018
21:44:22
во всяком случае с точки зрения запилить по быстрому
чистую модель ты в любом случае не сделаешь в силу несовершеннства бытия

Sergey
10.02.2018
21:45:35
ну тут я больше придерживаюсь такого правила как со стаческими методами. если метод не привязан к определенному инстансу - то его стоит сделать статикой, чтобы читая код было понятно что скоуп довольно узкий
так и с сущностями, если код в сущности, то 100% этот код не юзает внешние зависимости

Sergey
10.02.2018
21:46:10

Sergey
10.02.2018
21:46:39
релейшены это все в рамках одного графа, там окей

Sergey
10.02.2018
21:47:34
ну я обычно к сервисам прибегаю тогда, когда что-то что нужно не относится к конкретной сущности
например - история заказов

Sergey
10.02.2018
21:47:53
есть репосы)

Sergey
10.02.2018
21:48:15

Sergey
10.02.2018
21:48:51

Sergey
10.02.2018
21:48:56
вместо одного оптимального
с нужными джоинами и тд

Max
10.02.2018
21:49:16

Sergey
10.02.2018
21:49:46
вот да - надо специфику операции учитывать)

Max
10.02.2018
21:49:55

Sergey
10.02.2018
21:49:56
CQRS =)
ты делаешь покупку, тебе нужно на основе истории заказов юзера посчитать его скидку и финальную цену. это относится к "C"?

Sergey
10.02.2018
21:50:09
но ты можешь в С юзать read model

Google

Max
10.02.2018
21:50:32
стейт приложения меняется?

Sergey
10.02.2018
21:50:52
может и меняться, например когда ты оформляешь заказ

Max
10.02.2018
21:50:55
если нет, то это не совсем команд

Sergey
10.02.2018
21:51:08
суть в том что я не вижу особо проблем
с 10 лишними простыми запросами в базу

Sergey
10.02.2018
21:51:23

Sergey
10.02.2018
21:52:20
меня больше заботит не то сколько у меня запросов к базе (пока оно не влечет за собой респонс тайм больше 100-200 милисекнуд) а то насколько логика между собой разделена что бы мне было удобно вносить изменения

Sergey
10.02.2018
21:53:02
с 10 лишними простыми запросами в базу
у нас к примеру на странице просмотра продукта выполняется около сотни запросов(если считать что мы без кеша), 10 лишних запросов легко выливаются в тысячу. поэтому доктрину надо контролировать..

Sergey
10.02.2018
21:53:24
ммм.... кэш

Admin
ERROR: S client not available

Sergey
10.02.2018
21:53:35
короч Серег, мы коней в вакууме обсуждаем
это дурацкая идея

Sergey
10.02.2018
21:53:51

Sergey
10.02.2018
21:53:55
то что у тебя там специфика какая-то - это операция на чтение, это легко скорее всего закэшить как-то

Sergey
10.02.2018
21:54:07
кешить можно то на что есть хиты)

Sergey
10.02.2018
21:54:10

Sergey
10.02.2018
21:54:41
тут бы индексы влазили
а ты за базу

Google

Sergey
10.02.2018
21:54:46
ну такое

Sergey
10.02.2018
21:55:04
ты уже юзаешь шардинг?)

Sergey
10.02.2018
21:55:19
в кластере монги уже вроде два десятка нод

Sergey
10.02.2018
21:55:25
эх...
когда уже у меня будет проект где база в оперативку не помещается...

Sergey
10.02.2018
21:55:46
и на эластике тоже уже не помню сколько там, но меньше явно чем в монге

Max
10.02.2018
21:56:11

Sergey
10.02.2018
21:56:22
что бы база хотя бы терабайт(

Sergey
10.02.2018
21:56:43
типа выбрали и показали все как есть

Max
10.02.2018
21:57:01
ну как простое)
что ты рассказывал, посчитать, обсчитать тоже есть)

Sergey
10.02.2018
21:57:24

Sergey
10.02.2018
21:57:37

Max
10.02.2018
21:58:00

Sergey
10.02.2018
21:58:11
и это хорошо пока клиентов мало) так еще помимо клиентов есть целая инфраструктура для процессинга данных, которая тоже хочет пользовать базы

Sergey
10.02.2018
21:58:31

Sergey
10.02.2018
21:59:18
я не к тому что давайте меряться тому у кого толще база и у кого больше rps

Sergey
10.02.2018
21:59:37
а я к тому что бы решать проблемы в порядке их приоритета

Sergey
10.02.2018
21:59:45
я к тому что чтение не всегда тривиальное, и кеш не всегда панацея