169 похожих чатов

Всем привет! Если допустим у меня cqrs с командами, которые

могут попадать в асинхронные очереди и есть какие-то инварианты в доменах. Допустим при заказе трансорта вес товара не может бьть больше 1тонны для некоторых типов транспорта. Каким образом пользователю при заказе сообщить о том, что оформить подобный заказ невозможно? Думал над несколькими вариантами:
1. Проверка перед отправкой команды. Несильно нравиться, потому что в домене и так есть эта проверка, это бизнес правило, надо дублировать проверку.
2. Кинуть исключение. Неплохой вараинт если синхронная обработка, но что если асинзронная... Как сообщать пользователю, что команда отклонена?
3. Кинуть евент, что очень похоже на исключение
Что посоветуете по валидации команд и главное оповещанию юзеру об ощибке?

10 ответов

10 просмотров

Все зависит от бизнесовой важности операции и среднего времени ее асинхронной обработки. Если действие важно, а обработка занимает секунды, но вполне допустимо кинуть пользователя на страницу с ожиданием (спиннер загрузки). Такое например часто можно видеть в момент онлайн оплаты картой. Эта страница держится в фокусе юзера десяток секунд, регулярно проверяя статус готовности асинхронной операции. Если есть затык в очереди и не удалось дождаться - то выводится что-то типа "Проверьте готовность через N времени в личном кабинете". Таким образом у вас получится синхронный UX при асинхронной обработке. Если же это не нужно и не важно, то просто покажите юзеру статус "Заказ в обработке", а при готовности уведомите его любым подходящим способом: нотификейшн на сайте, пуш, емейл, смс.

1 имхо. Дублирование можно тегами победить или общими правилами которые работют и подгружаются и там и там

вынести проверку в апп-сервисе под капотом у которого доменный сервис и дергать его перед отправкой?

Сергей З.- Автор вопроса

Что за теги?

#bussness_rule_1

Сергей З.- Автор вопроса

В каком месте дергать? После того как команда попала в очередь асинхронную?

перед тем как поместить в очередь

Сергей З.- Автор вопроса

че-то я по ходу сильно тупой...)

ты не один 🙁 Я тоже не понимаю

Обычные теги по которым можно найти все места на которые надо обратить внимание при изменнии кода

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта