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

А зачем здесь интерфейс? почему нельзя просто сделать какой-нибудь класс

OrderHandler с методом GetNewOrderAsync() ?

2 ответов

8 просмотров

А тут кто как уже делает. Сервисы это простой и понятный способ. К тому же их можно комбинировать друг с другом. Ну то бишь типичный юзкейс - анемичные доменные модели, тонкие контроллеры и толстенный слой сервисов. Те, кто достиг дзена, что репозитории - мусор, если речь идёт о EF - просто используют контексты внутри сервисов и особо не переживают. Типичная трёхзвенка с тонкими контроллерами, толстыми бизнесовыми сервисами и тонкой анемичной моделью, представляющей из себя 1-n контекстов и dto'шки с наборами get'теров и set'теров.

Чтобы Handler'ы готовить - это уже ближе к CQRS, но сам по себе он особо проку не принесёт. Его обычно вместе с DDD желательно - тогда от него будет польза. Потому что кода писать больше, чем в случае с сервисами. Потому что сервисы, внезапно, никуда не деваются) Просто они перестают делать бизнесовые вещи, ну то бишь в сервисном слое остаётся, как правило - сугубо инфраструктурная хрень, а-ля "отправить e-mail" или что то вроде того. А переиспользование бизнесовых правил сводится к набору спецификаций в виде Expression<Func<T, bool>>. Ну то бишь тут приходится жертвовать унификацией в обмен на гибкость. Потому что в рамках выполнения отдельно взятой команды, я, например, могу вытащить конекшон из контекса и сделать прямой SQL-запрос, чтобы было быстрее. Ну или что-то навроде того. Отдельная команда/запрос уже покрывает как правило какой-то конкретный юз-кейс. Ну то биль если у тебя минимум логики и тупо CRUD - это будет лютейшим оверкилом. А если логики столько, что жопой ешь, то оно помогает бороться со сложностью, но как я уже подметил - ценой большего количества кода.

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
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
Карта сайта