Юра
Отправить результат факсом?
Maxim Kainov
Ну так сервисы этим и занимаются.
Если у тебя ентити простая структура, то все ок
Anonymous
Я могу в лс скинуть кому интересно
Anonymous
Возможно я неправ и это правда клёвое тестовое
Anonymous
Но как бы на позицию мидла....
Гена
Если у тебя ентити простая структура, то все ок
И возвращаемся по кругу. У вас вся бизнес логика построена в процедурном стиле. ООП исчезло. Я против подхода когда сущность это просто таблица в БД. И все ПО это куча сервисов которые дергают таблицу через эти сущности анемичные
Гена
Но как бы на позицию мидла....
Я на собеседованиях сразу предупреждал, что если они щас мне предложат бумажку и попросят что-то написать то я завершаю собеседование :)
Гена
Что-то из геймдева:)?
Anonymous
Миддл бэкэнд на Симфе
Anonymous
Удивительно, да?
Anonymous
Логика вообще должна быть в консумерах раббита
Maxim Kainov
Логика вообще должна быть в консумерах раббита
То есть, в любом проекте должен быть реббит? )
Anonymous
Да.
Гена
Так и не ответил как ты будешь логику из ентити в сервисы переносить
Ответил. Я не увидел бизнес логику заказа которую надо вынести за пределы заказа
Maxim Kainov
Ответил. Я не увидел бизнес логику заказа которую надо вынести за пределы заказа
Странно. Ну любую другую логику как ты будешь переносить, если понадобится?
Гена
Думаю это была бы Command на уровне Application. Точнее 2.
Maxim Kainov
Нет. Зачем?
Бизнес требование поменялось
Гена
Бизнес требование поменялось
Какое? У заказа теперь может быть не более 10 позиций?
Maxim Kainov
Какое? У заказа теперь может быть не более 10 позиций?
Чтобы узнать число позиций нужно обратиться к внешнему сервису
Гена
Заказу это все равно. Он получит необходимое бизнес требование при создании. А в самом заказе будет логика не допускающая внесения более указанного количества позиций. И мы всегда знаем что логика формирования заказа в самом заказе
Юра
Логика в mysql
Гена
а у вас ограничение по количеству позиций будет во всех 20 сервисах обслуживающих 20 разных пользователй заказа?
Юра
На хранимых процедурах
Гена
ну давайте извращения потом будем обсуждать
Юра
Смешно но на самом деле очень надёжно )
Гена
:) штука
Гена
все зависит от проекта
Сергей
На хранимых процедурах
такое тоже встречается))
Гена
Если проекту плевать на ближайшие годы что он привязан к БД и часть логики теперь в дургом месте ну ок
Maxim Kainov
Maxim Kainov
И тогда нужно будет изменить только один этот сервис, передать новую зависимость через di
Юра
Простой пример. Есть энтитя, у неё есть поля priceusd, pricerub
Юра
Надо сохранить pricerub на основании priceusd
Юра
Как это сделать в рич энтити?
Юра
Но вот мы ж сейчас про Рич энтити говорим с логикой внутри энтити
Сергей
передай курс параметром. в чем проблема?
Юра
Вот и я хочу понять как мне такую логику засунуть в энтити
Юра
Так а где тут рич энтити тогда
Юра
Мне нужен получается сервис
Юра
Который.дает ей курс
Юра
Чет анэмическая модель какая-то
Юра
Рич энтити я так понимаю сама должна все считать
Maxim Kainov
Вот и я хочу понять как мне такую логику засунуть в энтити
В параметре передать интерфейс для получения курса. Так, наверное
Юра
И чем тогда это лучше обычного сеттера setPriceRub
Юра
Нафига мне эти танцы с передачей интерфейса
Юра
Вдруг энтити решит не умножать на курс а делить или что?
Maxim Kainov
Вдруг энтити решит не умножать на курс а делить или что?
Ну ентити только курс получает, а умножать или делить сама решает
Юра
Вопроч
Юра
Как это укладывается с сисфлнийскими формами
Юра
Как мне в сеттер передать еще интферфейс
Юра
Или в сериализатор
Юра
И куда передавать? В setPriceUsd?
Юра
Или просто setRateService делать каждый раз
Юра
Короче хрень какая-то получается
Юра
Так это самый банальный пример
Юра
Причем я вынужден передавать ей этот интерфейс всегда
Юра
Потому что автоваера нет а логику энтити я не знаю
Юра
Понадобится он ей или нет
Юра
Если мы говорим о том что каждый раз пишем setPriceRub(someService), то на корню убиваем.саму идею сервис контейнерп с его депенденси инжекшн
Юра
Нафиг он нужен давайте в каждый метод передавать все зависимости руками
Maxim Kainov
Точно
Гена
сами что-то придумали и сами победили :))
Maxim Kainov
сами что-то придумали и сами победили :))
Ну расскажи тогда, как эти проблемы решать
Гена
Простой пример. Есть энтитя, у неё есть поля priceusd, pricerub
Сложный пример. Я не в курсе что за бизнес модель содержит такие свойства. А значит все что написано дальше бессмыслено без понимания контекста
Юра
Тю. Ну пусть история курса
Юра
Вот вам бизнес модель записи истории курса на день
Юра
Что тут такого сложного
Юра
Еще поле created добавить туда и все
Гена
Вот и я задам себе вопрос что тут такого сложного чтобы это было бизнес моделью с какой-либо бизнес логикой