Денис Цветцих - 9 способов улучшить архитектуру вашего проекта при помощи CQRS и vertical slices

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

DotNext — конференция для .NET‑разработчиков

DotNext — конференция для .NET‑разработчиков

2 жыл бұрын

Ближайшая конференция - DotNext 2024, 10 - 11 сентября, Москва + online
Подробности и билеты: jrg.su/x2GKnA
- -
Логика большинства проектов реализуется «горизонтально» в виде слоя ApplicationServices. Однако существует альтернативный подход, когда для каждого юзкейса создается отдельный класс-хендлер. Чаще всего такой подход используется вместе с CQRS, когда система распиливается на стеки чтения и записи ради повышения производительности. Джимми Богард назвал этот же подход vertical slices. Многие разработчики слышали о нем, но не используют, так как не могут ответить на вопрос: «стоит ли использовать хендлеры, если мы не боремся за производительность при помощи CQRS?»
В докладе Денис покажет 9 преимуществ, которые дают вертикальные хендлеры/слайсы по сравнению с привычными горизонтальными слоями. А также он поделится опытом перехода с сервисов на слайсы.

Пікірлер: 11
@FreemanFromSteppe
@FreemanFromSteppe Ай бұрын
использую CQRS и Vertical Sliced в любых проектах, потому что это упрощает восприятие системы и ориентацию в системе.
@Ivan-fw3nv
@Ivan-fw3nv Жыл бұрын
облегчение на лицо (с)
@user-tk2jy8xr8b
@user-tk2jy8xr8b Жыл бұрын
Падажжите, они родственники или нет?
@user-jr4ou9gh6b
@user-jr4ou9gh6b Жыл бұрын
9 преимуществ мотоцикла перед велосипедом: явные: едет быстрее, он мощнее, вы раньше прибудете на место, условные: на вас есть шлем, на вас есть защита, и побочные преимущества: колёса шире, больше спиц, есть бибикалка, есть зеркальце. Минусов у мотоцикла практически нет, только ветер сильнее. Мужики, у вас лекция ради лекции, просто чтобы гонорар отработать? Я же смотрю на вас, как на супер-профи в программировании, в надежде узнать что-то полезное, а после такого ролика браться за новое уже не хочется. Тема не раскрыта! (минус полтора часа с пересмотрами)
@artemignat7764
@artemignat7764 14 күн бұрын
Да ладно !!!!!!!!!!!!!!!. Два брата!!!
@alexeygot
@alexeygot 2 жыл бұрын
уровень спикеров в очередной раз огорчил(( примеры все как 1 притянуты за уши, про зависимости - поржал от души эксперт так эксперт
@vadim_b.
@vadim_b. 2 жыл бұрын
Парни, что за терминология? Нахватались терминов не понимая их. Юскейс нельзя вызвать, тем более из юскейса. Use case это как бы типичная ситуация или поведение, вариант, случай или их описание, сценарий. Не код или реализация. ru.wikipedia.org/wiki/%D0%A1%D1%86%D0%B5%D0%BD%D0%B0%D1%80%D0%B8%D0%B9_%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F К примеру, Delete как метод объекта, это не юскейс. А вот вызов этого метода при каких-то условиях или по какому-то сценарию, это уже юскейс, но опять же не на уровне Delete. Delete не актор, по крайней мере не в указанном примере. И даже если Delete вызывает другой Delete, тут нет юскейса, это выполнение внешнего сценария.
@Cleannetcode
@Cleannetcode 2 жыл бұрын
терминов конечно и правда много, и порой они только все портят. Но в данном случае use case - вариант использования, и докладчик вполне верно его употреблял. Пример с Delete верный, просто нужно понять, что докладчик рассказывал именно про слой Application где описаны как раз таки сценарии. В данном случае мы видим сценарии описанные в виде commands and queries (CRQS).
@vadim_b.
@vadim_b. 2 жыл бұрын
@@Cleannetcode Попробую по другому пояснить. У спикера юзкейс, это конкретная реализация. Вот унего даже "код юскейса" есть. Delete - юскейс для объекта. Но не конкретный метод объекта. Для одного юскейса может быть несколько реализаций метода Delete. Если вы будете делать так, как он, то вам придется придумывать обобщающий реализации термин, типа "юскейс верхнего уровня". Это бардак. Вот у него "юскейс вызывает юскейс". Ну и как вам, понятно кто на ком стоял?
@Cleannetcode
@Cleannetcode 2 жыл бұрын
@@vadim_b. хмм, звучит здраво. Спасибо :)
@RajaKajiev
@RajaKajiev 2 жыл бұрын
+1 правильное наименование проблемы - половина решения!
Станислав Сидристый - Делаем zero-allocation код на примере оптимизации крупной библиотеки
1:13:04
Денис Цветцих - Модульный монолит вместо микросервисов: Как, когда и зачем
1:00:37
DotNext — конференция для .NET‑разработчиков
Рет қаралды 5 М.
Nutella bro sis family Challenge 😋
00:31
Mr. Clabik
Рет қаралды 13 МЛН
Русалка
01:00
История одного вокалиста
Рет қаралды 6 МЛН
ОСКАР vs БАДАБУМЧИК БОЙ!  УВЕЗЛИ на СКОРОЙ!
13:45
Бадабумчик
Рет қаралды 6 МЛН
Владимир Хориков - Domain-driven design: Cамое важное
1:13:59
DotNext — конференция для .NET‑разработчиков
Рет қаралды 50 М.
Tired of Layers? Vertical Slice Architecture to the rescue!
12:26
Максим Аршинов - Быстрорастворимое проектирование
59:54
DotNext — конференция для .NET‑разработчиков
Рет қаралды 18 М.
Андрей Цветцих - Чистая архитектура на практике
1:13:49
DotNext — конференция для .NET‑разработчиков
Рет қаралды 8 М.
Евгений Пешков - .NET: Лечение зависимостей
1:00:10
DotNext — конференция для .NET‑разработчиков
Рет қаралды 4 М.
Stephen Toub - Unlocking performance improvements in .NET
1:11:53
DotNext — конференция для .NET‑разработчиков
Рет қаралды 7 М.
Как правильно выключать звук на телефоне?
0:17
Люди.Идеи, общественная организация
Рет қаралды 1,4 МЛН
Сколько реально стоит ПК Величайшего?
0:37