Как реализовать сервис с CQRS | Mediator

  Рет қаралды 4,013

Excalib

Excalib

Жыл бұрын

Запись на личную консультацию - t.me/excalib_advice_bot
Всем кусь 😺 По простому рассказываю и показываю что такое CQRS и Mediator. Надеюсь будет полезно, напишите в комментах на какую тему хотели бы следующее видео🎉💻
Telegram channel: t.me/excalib_channel
Telegram chat: t.me/excalib_chat
Vk: excalib88
Статья по CQRS - habr.com/ru/articles/347908/
Github с моим проектом - github.com/Excalib88/ExcalibCQRS

Пікірлер: 20
@interjacksoninter6310
@interjacksoninter6310 Жыл бұрын
Достаточно просто и понятно про CQRS, маловато про смысл медиатора) Но норм, посмотрел, сейчас буду пробовать)
@konstantinturkin6639
@konstantinturkin6639 Жыл бұрын
Мне буквально вчера дали таску переделать обычные сервисы в CQRS, как же вовремя)
@nouchance
@nouchance Жыл бұрын
Спасибо большое!
@volodia9509
@volodia9509 Жыл бұрын
На одном из проектов, использовали чуть другую схему. Репозитории объединялись в unit of work, при этом в хэндлерах команд и кверей происходил вызов не сервисов, а обобщенных интерфейсов с прокидыванием необходимой сущности в обобщение, данные которой необходимо использовать, например: ICommandRepository на создание/изменения, IQueryRepository на чтение из репозитория Users. Не помню правда как назывался этот паттерн, но был один из самых удобных
@Excalib
@Excalib Жыл бұрын
думаю что это часть CQRS+Event Sourcing, в моём проекте нет UoW, но в целом при желании почему бы и нет:)
@volodia9509
@volodia9509 Жыл бұрын
@@Excalib ну у нас эвенты тоже были, но были завязаны не на бд, а на сервисы. Но в целом да, играть можно с cqrs как угодно, строгих паттернов нет смысла придерживаться, их нужно адаптировать под каждый конкретный проект, лишь бы было удобно и практично)
@jcatstreams8550
@jcatstreams8550 2 ай бұрын
Repo в uow😂😂😂
@Cleannetcode
@Cleannetcode Жыл бұрын
Хорошее видео, но мне кажется стоит прекращать смешивать cqrs и mediatr. Во первых они не шибко связаны и получается две не самые простые темы за раз. Во вторых тут есть разные альтернативы и mediatr не лучший выбор среди них. В общем я в некотором смысле хейтер mediatr-а и в проектах проще работать с этими самыми командами и кверями как есть (как на схеме про CQRS нарисовано)
@Excalib
@Excalib Жыл бұрын
на схеме нарисован CQRS+ES)
@paulo_pastore
@paulo_pastore 9 ай бұрын
не понимаю вообще зачем медиатор, чтобы вызвать метод какого-то сервиса использовать для этого медиатр? видится как не нужная прокладка
@nikoleynikk4250
@nikoleynikk4250 10 ай бұрын
здаров можешь помочь как опубликовать приложение Blazor Webassebly, пробую способ как твой но при попытке запустить дебаг или релиз dll вылезает ошибка
@andrewk3680
@andrewk3680 Жыл бұрын
Привет. А стоит ли принимать команды прям в контроллер или создать дто/реквесты и потом мапить их в команды?
@Excalib
@Excalib Жыл бұрын
Вопрос хороший и я им тоже задавался в свое время, мнения расходятся, но я считаю, что допустимо использовать команды, но если хочешь структурировать подход, то добавляй реквесты, поэтому делай как удобнее, проблемы с этим не будут)
@user-qu6ni1gl4u
@user-qu6ni1gl4u 7 ай бұрын
Привет! А зачем обработчик определили в слое infrastructure? У меня например все в Аpplication. Считается ли это ошибкой ?
@Excalib
@Excalib 7 ай бұрын
Какой обработчик? Ошибкой не считается важен контекст использования, кстати про ваш вопрос я подробно объясняю в видео про Чистую архитектуру
@user-qu6ni1gl4u
@user-qu6ni1gl4u 7 ай бұрын
@@Excalib я смотрел его, очень помогло и статья, которую дали. Очень интересная, спасибо. Команда реализующая IRequest и обработчик реализующий IRequestHandler. Эти два файла в одной папке но в разных файлах. Слоя application.
@user-qu6ni1gl4u
@user-qu6ni1gl4u 7 ай бұрын
@@Excalib ну в нем я вызываю repository, значит нужно определить в infrastructure получается?
@Excalib
@Excalib 7 ай бұрын
@user-qu6ni1gl4u смотрите на это с точки зрения появления проблем, основным критерием правильного распределения классов будет являться то, что в будущем у вас не возникнет проблем с ссылками на проекты, на текущем этапе старайтесь писать больше кода и меньше обращать внимание на такие тонкости, с практическим опытом придет и наточенный до автомата навык распределения классов по слоям
@user-qu6ni1gl4u
@user-qu6ni1gl4u 7 ай бұрын
@@Excalib спасибо
Intro to MediatR - Implementing CQRS and Mediator Patterns
1:21:50
IAmTimCorey
Рет қаралды 219 М.
Чистая архитектура ASP.NET Core 7
25:20
Excalib
Рет қаралды 11 М.
DO YOU HAVE FRIENDS LIKE THIS?
00:17
dednahype
Рет қаралды 103 МЛН
Smart Sigma Kid #funny #sigma #comedy
00:25
CRAZY GREAPA
Рет қаралды 26 МЛН
100❤️
00:19
MY💝No War🤝
Рет қаралды 22 МЛН
Дарю Самокат Скейтеру !
00:42
Vlad Samokatchik
Рет қаралды 7 МЛН
Архитектура CQRS
35:36
Программирование - это просто
Рет қаралды 11 М.
Napkin folding tutorial. How to fold napkins. Easy tutorial.
3:21
Готовим с Инной Тищенко
Рет қаралды 3,8 МЛН
JWT авторизация. Основы JWT - механизма.
6:45
Хочу вАйти
Рет қаралды 4,4 М.
Как использовать Automapper в ASP.NET Core
17:25
DO YOU HAVE FRIENDS LIKE THIS?
00:17
dednahype
Рет қаралды 103 МЛН