@symfony_php

Страница 632 из 1418
Max
10.02.2018
21:36:28
интересует еще мнение, может быть не ваше а с которым сталкивались
очень не "явно" когда логика размазывается по сущностям, а не собрана в одном сервисе

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
соц опрос для тех кто считает что бизнес логике в сущностях не место: почему вы так считаете?
а вообще, тут больше кто как думает, если ты оперируешь данными, точнее структурами, то логика их обработки у тебя будет где-то отдельно от них

ты не рассматриваешь свою бизнес логику в виде объектов

вот и все)

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
в твоем варианте да но я стараюсь обходиться без этих ивентов я их пока не до конца освоил + завязка лишняя на доктрину

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:39
релейшены это все в рамках одного графа, там окей

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

например - история заказов

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

Sergey
10.02.2018
21:48:15
есть репосы)
а есть to many релейшены

Sergey
10.02.2018
21:48:51
а есть to many релейшены
а потом воюем с миллионами запросов к базе

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

с нужными джоинами и тд

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

Max
10.02.2018
21:49:55
например - история заказов
так себе пример, это репозиторий или еще не репозиторий

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

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
но ты можешь в С юзать read model
и к чему тут CQRS тогда?) от того что я сделаю запрос к базе не привязанный к сущностям, это не значит что я пошел по дороге CQRS

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: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
и к чему тут CQRS тогда?) от того что я сделаю запрос к базе не привязанный к сущностям, это не значит что я пошел по дороге CQRS
как показывают наблюдения чтение это чаще всего не бизнес логика, а визуализация данных от этого и проблемы, где-то нужна модель, а где-то запроса в базу хватит

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

Max
10.02.2018
21:57:01
ну как простое)

что ты рассказывал, посчитать, обсчитать тоже есть)

Sergey
10.02.2018
21:57:24
типа выбрали и показали все как есть
не так, просто данных меньше и 100 запросов к базе на 4-х репликах никого особо не напрягают)

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

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

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

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

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