Чистая архитектура ASP.NET Core 7

  Рет қаралды 12,745

Excalib

Excalib

Күн бұрын

#excalib #cleanarchitecture #aspnet
Запись на личную консультацию - t.me/excalib_a...
Всем кусь 😺 Часто возникают вопросы про чистую архитектуру, потому что не все её до конца понимают! На самом деле всё проще, чем вам кажется, и я постараюсь вам это объяснить.🎉💻
Telegram channel: t.me/excalib_c...
Telegram chat: t.me/excalib_chat
Vk: excalib88
CleanCoder: blog.cleancode...
Крутая статья про чистую архитектуру: habr.com/ru/co...
Template ASP.NET Core 7: github.com/jas...

Пікірлер: 35
@Cleannetcode
@Cleannetcode Жыл бұрын
Полностью поддерживаю совет для новичков. Что не нужно пытаться выстраивать какую то "чистую архитектуру" не разобравшись с интсрументами. Сначала нужно поднабить шишек, попробовать сделать пару тройку проектиков. А затем уже можно попробовать применять те или иный концепции из мира проектирования ПО :)
@vasinas81
@vasinas81 Жыл бұрын
Работаю давно по такой схеме и такой архитектуре. Теперь на вопрос "зачем так сложно?" буду давать ссылку на это видео. Спасибо автору))
@karimkimsanbaev7932
@karimkimsanbaev7932 Жыл бұрын
Tools -> Architecture diagram. Dependency rule (в юз кейса интерфейс IRepository) и Data flow (По интерфейсу обращаемся к DBRepository по интерефейсу) это просто абсолютно разные вещи. Юз кейсы не знают, что мы обращаемся именно к DB, поэтому депенденси рул не нарушается. А с точки зрения голых данных мы уходим в инфраструктуру. В общем тут лучше 1 пример, вместо 1000 слов. Ключевая проблема обсуждений архитектуры, много слов и правил и ни одного боевого примера) Спасибо за пример в этом видео
@Excalib
@Excalib Жыл бұрын
Спасибо, согласен, отлично замечание! (у меня эта диаграмма чуток по-другому называется) ibb.co/rHzrg6Q (моя диаграмма)
@perwyj
@perwyj Жыл бұрын
Удивительно, что столь полезное видео, имеет так мало просмотров🤔 Спасибо большое за годный контент!
@Excalib
@Excalib Жыл бұрын
Спасибо!
@zmqpkyf
@zmqpkyf 4 күн бұрын
как по мне чистая архитектура тесно связана с ддд впринципе, отсюда выходит что слой enterprice это доменные модели, слой use cases служит в простонародье как application, все остальное уже (controllers, gateways, presenters) является слоем UI, все остальное это зависимости
@sergbo3114
@sergbo3114 5 ай бұрын
12:20 Ну это можно сказать проще. Вызывать и зависеть, это разные вещи. Например интрефейсы и DI по сути обрывают классовые зависимости, но оставляют вызовы.
@МаксимВеснин-и6э
@МаксимВеснин-и6э 9 ай бұрын
Спасибо тебе, друг! 8 лет разработки, но до меня не доходило до конца
@Excalib
@Excalib 9 ай бұрын
Как я тебя понимаю:)))
@sergeysaviiskyi7329
@sergeysaviiskyi7329 Жыл бұрын
Мужик, спасибо большое! Одно из лучших объяснений на русском!
@nouchance
@nouchance Жыл бұрын
Spasibo bratan ❤
@zdludz
@zdludz 10 ай бұрын
Cпасибо большое за видео!! Можешь пожалуйста снять видео про библиотеку AutoMapper?
@Excalib
@Excalib 10 ай бұрын
Думаю сниму)
@zdludz
@zdludz 10 ай бұрын
@@Excalib спасибо большое!
@НикитаКопылов-у9л
@НикитаКопылов-у9л Жыл бұрын
однозначно лайк, броу!
@Excalib
@Excalib Жыл бұрын
сяп!
@clutchmeisteryo9831
@clutchmeisteryo9831 Жыл бұрын
В каком слое хранить Dto и конфигурацию маппера?
@Excalib
@Excalib Жыл бұрын
Смотря для какого слоя созданы дто и для какого слоя созданы правила маппинга, например если Dto аля GetUserRequest, то такая dto создана для слоя UI, тогда эта дтоха будет лежать в UI слое в проекте Web, и конфигурация для маппинга этой сущности тоже там же, а если это бизнесовая дтоха например для маппинга из Application слоя в Domain, то хранится она должна в Application и конфигурация тоже
@arvpro8970
@arvpro8970 11 ай бұрын
Добрый день. А где и как хранить фоновые службы? Например какая та очередь задач, скажем bull. Для каждой очереди свой процессор, который выполняет что-то. Как вызывать фоновые службы чтобы они начали работать и запускали use cases? Понятно с API вызов идет напрямую. А без вызова как?
@Excalib
@Excalib 10 ай бұрын
Добрый! Не очень понимаю что такое хранить фоновые службы, я бы вообще делал фоновые службы как отдельный сервис или хотя бы запускаемый проект, просто чтоб было удобно масштабировать
@arvpro8970
@arvpro8970 10 ай бұрын
@@Excalib например мы кладем задачу отправки email, и отправка происходит воркером. Вот фоновый сервис
@scc-6
@scc-6 Жыл бұрын
Мне бы асп.Кор понять, для начала((
@СергейДовгалев-ц1щ
@СергейДовгалев-ц1щ Жыл бұрын
поймешь. Не все сразу.
@LAV451
@LAV451 8 ай бұрын
Не уверен что интерфейс должен находится хрен знает где от свое реализации. Обычно разработчик пишет компонент и представляет интерфейс для всех желающих написать своё расширение. А теперь представь что ты в своём проекте написал какой-то интерфейс и предлагаешь разработчику стороннего проекта его имплеминтировать в своём проекте. Культурный просто промолчит, а я бы послал куда подальше. Вот компонент, вот интерфейс. Тебя ведь никто не заставляет его имплементировать, мы просто указываешь его в своих зависимостях. Короче, пересмотри ещё раз своё видео и обрати внимание на слои, зависимость между ними и как эта зависимость реализуется в коде. Дизлайк. Бред полный!
@Excalib
@Excalib 8 ай бұрын
Спасибо, ваше мнение очень ценно!
@АлексейМиллер-щ7ч
@АлексейМиллер-щ7ч 6 ай бұрын
тут скорее имеется в виду, что интерфейс определяет контракт для работы с ядром. Т.е. в ядре есть какая-то логика, и она допустим хочет уведомлять по почте, и она внешнему миру говорит, что я буду дергать кого-то кто на вход получит тело, тему, получателей. А далее в инфраструктуре реализуется некий отправлятор почты, который в свою очередь может использовать внешние компоненты с каким-то интерфейсом и реализация непосредственной отправки может меняться, но ядру приложения этого знать не надо, и свой интерфейс менять не надо.
@LAV451
@LAV451 6 ай бұрын
Я ошибочно подогнал что если мы используем луковичную архитектуру то каждый слой представляет из себя самостоятельный модуль, но на практике оказалось что все слои объеденяются в модуль и логически связанны между собой.
@АлексейМиллер-щ7ч
@АлексейМиллер-щ7ч 6 ай бұрын
Можно делить на dll, можно не делить. Я бы делил.
@Excalib
@Excalib 6 ай бұрын
:D
@whisper399
@whisper399 11 ай бұрын
а просто тыкнуть в браузере перевести на русский не? а не объясняться пол видоса, что плохо знаешь английский
@Excalib
@Excalib 11 ай бұрын
я просто русский тоже плохо знаю
@whisper399
@whisper399 11 ай бұрын
@@Excalib "смешно", ха-ха-ха
@xelaksal6690
@xelaksal6690 9 ай бұрын
Зачем ты до человека доебался? Он тебе что-то сделал плохое? Более того он тебе видео снял, чтобы ты лучше разобрался, а ты неблагодарный токсичный чел. Не надо так. Если хочешь посоветовать или обратить внимание на что-то - делай это тактично. Иначе ты просто обесцениваешь весь видос и делаешь неприятно автору.
Владимир Хориков - Domain-driven design: Cамое важное
1:13:59
DotNext — конференция для .NET‑разработчиков
Рет қаралды 54 М.
规则,在门里生存,出来~死亡
00:33
落魄的王子
Рет қаралды 27 МЛН
小路飞嫁祸姐姐搞破坏 #路飞#海贼王
00:45
路飞与唐舞桐
Рет қаралды 24 МЛН
She's very CREATIVE💡💦 #camping #survival #bushcraft #outdoors #lifehack
00:26
когда не обедаешь в школе // EVA mash
00:51
Dependency Injection | Внедрение зависимостей в C# и ASP.NET Core
50:38
Марк Шевченко - Микросервисы на C#
1:02:10
Creating .Net Core Microservices using Clean Architecture
26:02
Rahul Sahay
Рет қаралды 20 М.
Clean Architecture with ASP.NET Core 8 | .NET Conf 2023
29:17
Как использовать RabbitMQ в ASP.NET Core
33:13
Шаблоны проектирования для микросервисов
1:07:50
Александр Бармин
Рет қаралды 29 М.
规则,在门里生存,出来~死亡
00:33
落魄的王子
Рет қаралды 27 МЛН