Павел
Контракт флашера
Юра
Флаш это точка синхронизации кода и бд
Юра
Она не должна быть размазана везде
Юра
Приложение в памяти кажется бредовым
Павел
Ну короче имхо холивар, я сам юзаю флаш отдельный. Но не могу однозначно сказать, что мне это однозначно нравится
Юра
Тогда тебе понравится наверное явно стартовать транзакции
Юра
Потому что юзер сохранился а дальше ошибка и отлуп
Юра
На половину процесс сделался
Юра
Это типичный лапшеподход
Юра
Сохранится одна и все
Юра
Вместо двух
Павел
Типа флаш в котором внутри траназакция - не лапаша, а транзакция сама по себе лапша?
Юра
Вторая например не сохранилась из-за дупликейт ки или что-то еще
Юра
Как ты будешь откатывать неуспешные операции?
Павел
Павел
Единый uow - вот беда, да
Юра
Не ну если тебе нравится делать двойную работу делай
Юра
Сначала разбить на две транзакции а потом обернуть в одну транзакцию
Павел
Все относительно
Павел
Это все инфраструктурный слой
Павел
Короче о чем мы беседуем я хз.
Я сам юзаю флаш вне репо, так как это удобнее в некоторых местах.
Но архитектурно мне не нравится
Павел
Симфа вон тоже начала пихать в репо, хоть и криво
Юра
В басе логично, ты обработал сообщения и онг сделало фдаш, ОДИН атомарный
Павел
Юра
А если у тебя флаш кругом во всех репах то будет непонятно
Павел
Так то флаш тоже не скидывает в БД, если снаружи транзакция
Павел
Юра
Я не понимаю зачем? Зачем мне флашить в репе?
Юра
Что это дает?
Юра
Это сайд эффект
Юра
Павел
Павел
В приложении нет контракта FlushInterface
Павел
Давай лучше по контрактам рассуждать
Юра
Флаш это сайд эффект
Юра
Нарушение single responsibility
Павел
В случае флаша внутри :
UserRepositoty::save
В случае снаружи
UserRepositiry:add
FlusherInterface
Павел
Юра
Павел
Юра
Вьпервом случае у тебя TransactionInterface еще не забудь
Павел
Юра
Да. Транзакция это тот же флашер под капотом
Юра
Заменил одно на другое и что ?
Юра
В чем Профит?
Юра
Будет сервис который это все будет делать внутни себя
Павел
Какая нам разница в мускуле или в эластике?
Павел
Приложение не должно зависеть от персистенса
Юра
Без понятия. Ты предложил какой-то экзотический сетап и споашиваешь
Павел
Юра
Я тебе говорил про обычную работу с базой
Павел
Приложение не должно зависеть от персистенса
Павел
ИНверсия зависимостей
Юра
Откуда я знаю твою логику. Приложение не зависит от персиста. А кто зависит?
Павел
Я говорю не за атомарность, а за контракты
Юра
Все зависит так не бывает. Напрямую или через другую зависимость. Если такое приложение зависит от сервиса который зависиь от персиста значит твое приложение зависть и от персиста
Dmitry
Павел
Павел
Я написал свой кастомный репо в этой задаче. Не на доктрине мир живет весь
Юра
Ага либо бесконечные фикс и синк скрипты на коленках
Павел
Павел
Если бы были бы разные флашеры для каждой сущности - это лучше ложится
Павел
Единый флашер архитектурно - хренова
Павел
Но удобно
Павел