Dependency Injection | Внедрение зависимостей в C# и ASP.NET Core

  Рет қаралды 11,760

Kirill Sachkov - Development

Kirill Sachkov - Development

Күн бұрын

Пікірлер: 69
@KirillSachkov
@KirillSachkov 6 ай бұрын
Мой телеграмм канал - t.me/sachkov_blog
@dmitriiandrukhiv3579
@dmitriiandrukhiv3579 Ай бұрын
У меня 15+ лет опыта в .Net и моя оценка: Кирилл мега-крутой специалист, обладающий одновременно и глубиной понимания и способностью объяснять так, что будет понятно даже новичку. По большинству IT-ютуберов очевидно, что они даже не джуны, но почему-то решили, что могут кого-то учить. Кирилл, спасибо за твой труд, буду отправлять .Net-джунов на твой канал, ты очень крутой!
@JdSpot
@JdSpot 6 ай бұрын
Кто из телеги ставьте тут лайк, посмотрим сколько нас
@prumpumpumprumpumpum1607
@prumpumpumprumpumpum1607 Ай бұрын
Доходчево объяснять и демонстрировать требует не мало усилий и компетенций. Спасибо! Лайк! Успехов!
@obunga506
@obunga506 6 ай бұрын
Бро, сделай, пожалуйста, видос по микросервисам, на примере простого проекта. Думаю многим зайдет, так как тема довольно таки актуальная. Спасибо за твой труд.
@rimsi8860
@rimsi8860 2 ай бұрын
Такое приятное ощущение, я с месяц назад смотрел этот ролик и мало чего понял, сейчас после практики и немного теории понимаю ролик на лету, те кто не понял ролик прсото пересмотрите его позже через неделю, через 2 и всё будет хорошо, кто не сильно понял ролик не переживайте. Автору большое спасибо!
@mierce
@mierce Ай бұрын
лучший канал по дотнету!
@ЖеняСероокий
@ЖеняСероокий 2 ай бұрын
Я из GameDev и сразу научился пользоваться библиотекой Zenject. Смотрю до середины и понимаю что принципы очень похожи))) Спасибо за урок!
@TheNexoOneChannel2
@TheNexoOneChannel2 24 күн бұрын
Большое спасибо, теперь я понял что такое DI и с чем его едят)
@avermaxmusic
@avermaxmusic Ай бұрын
Очень годно и наглядно объясняешь и показываешь многие важные моменты. Не скажу, что это будет доступно тем, кто не пытался ознакомиться и понять чтиво, но если более менее в контексте - очень полезно. Лойс
@MrUsanik
@MrUsanik 3 ай бұрын
Хорошая подача материала, прекрасно всё объясняете! Занимаюсь геймдевом (на Unity), но есть желание переквалифицироваться в биздев... Читаю статьи, смотрю ролики и афигеваю от того на сколько тут в целом всё архитектурно более продуманно можно сказать из коробки) Чтобы правильно понять применение DI-контейнеров и изучить соответствующие фреймворки в Unity пришлось прям напрячься, а тут всё гораздо лаконичнее и понятнее сразу, красота прям!
@YellowAK47
@YellowAK47 2 ай бұрын
Спасибо за видео. Очень хотел сравнение со спрингом джавы. И вот получил все ответы на свои вопросы
@ilyatrukhin5992
@ilyatrukhin5992 3 ай бұрын
Спасибо. Очень доходчиво объяснил
@vlahroman1715
@vlahroman1715 2 ай бұрын
Смотрю уже втрой гайд от тебя, контент крутой)
@Sergey-vh3vj
@Sergey-vh3vj 6 ай бұрын
Отличные примеры. Объяснено очень доступно) Буду младшим коллегам отправлять ссылку для ознакомления) Спасибо за труды.
@yuryrozhkov3896
@yuryrozhkov3896 6 ай бұрын
Спасибо за подробный разбор этой темы.
@nkt_kzmn
@nkt_kzmn 2 ай бұрын
Красавчик! Спасибо за доходчивое и простое объяснение! +Подписка :3 +Лайк :)
@juniorcode41
@juniorcode41 6 ай бұрын
Спасибо. Очень доходчиво объяснил.
@less2314
@less2314 4 ай бұрын
отличный ролик, спасибо!
@marksreider7645
@marksreider7645 6 ай бұрын
Спасибо за труды!!! Очень полезная тема
@sorbondavlatov6208
@sorbondavlatov6208 6 ай бұрын
Спасибо большое за видео 🤗 Очень четко объяснил всё 🔥🔥
@Saler1-z2f
@Saler1-z2f 5 ай бұрын
Как всегда отличное обьяснение Я наконец то понял scoped) Большое спасибо!
@Dima21r
@Dima21r 6 ай бұрын
Очень классное объяснение! Спасибо за труд!
@shreezshreezers6067
@shreezshreezers6067 4 ай бұрын
Спасибо большое за видосики, все очень круто!! Продолжай в том же духе!
@Дневниксамоучки-ъ1и
@Дневниксамоучки-ъ1и 6 ай бұрын
большое спасибо за видео, ждем по ассинхроности видео)
@ДанилаДоманский
@ДанилаДоманский 6 ай бұрын
Спасибо
@SoulGoodman-c7j
@SoulGoodman-c7j 5 ай бұрын
Очень круто, продолжай!
@НиколайРюмин-й6и
@НиколайРюмин-й6и 6 ай бұрын
Классное видео. Прямо доходчиво все рассказал.
@НикитаЗападнов
@НикитаЗападнов 6 ай бұрын
Крутое видео, спасибо, Кирилл!
@АртемийКонь
@АртемийКонь 6 ай бұрын
Как всегда на высоте🔥
@aybeksultanov6709
@aybeksultanov6709 6 ай бұрын
Кирилл как всегда на высоте очень подробно ясно все объяснил, спасибо продолжай в том же духе
@julik_r
@julik_r 6 ай бұрын
Очень полезно, спасибо!
@IvanKadrov-e7l
@IvanKadrov-e7l 6 ай бұрын
Супер контент! Доходчиво и понятно. Кирилл, есть предложение. Почему бы тебе на Boosty не сделать pet-проект по актуальному стеку: asp, postgres, rabbit, redis, unit тесты и т.д. Пусть он будет небольшой, но работоспособный. Думаю, многие подпишутся на такой контент, я уж точно)
@topowl7847
@topowl7847 5 ай бұрын
Отлично объясняешь, делаю видео в так же духе. В качестве следующих тем предложу Паттерны, Микросервисы, Rabbit, Асинхронное/параллельное/многопоточное программирование, ну и конечно же примитивы синхронизации.
@murr_ka4374
@murr_ka4374 6 ай бұрын
Коммент для продвижения видео. Как всегда топ! 😅
@playvirtul5588
@playvirtul5588 6 ай бұрын
Смотрим стоя
@yar9721
@yar9721 3 ай бұрын
Имба
@DocMartens1972
@DocMartens1972 6 ай бұрын
Проработал доступную подачу на практических примерах. Спасибо за материал. Кстати, какую платформу используешь на видео для рисования контейнеров, линий, стрелочек?
@KirillSachkov
@KirillSachkov 6 ай бұрын
excalidraw
@Eugtrader
@Eugtrader 6 ай бұрын
Крутяк
@Surf391711
@Surf391711 6 ай бұрын
Сохранил в избранное
@ЕвгенийНестеров-х7г
@ЕвгенийНестеров-х7г 5 ай бұрын
хотелось бы узнать как что произойдет если зарегать 2 реализации одного и того же интефейса и как выбрать нужную в конструкторе . В начале видео было про 2 реализации IMessageService но так и не раскрылось. Так же интересно что будет если конструкторов несколько, какой конструктор выберет DI контейнер.
@dv5946
@dv5946 6 ай бұрын
кайф
@artemon_limon-mn1vk
@artemon_limon-mn1vk 6 ай бұрын
Привет, запиши пожалуйста видео где показываешь как нужно реализовывать аутентификацию через соц сети пожалуйста!!!!
@AlexandrPuzakov
@AlexandrPuzakov 4 күн бұрын
Крайне несогласен с важнейшестью DIP в SOLID. Важнейший принцип это SRP, другие принципы скорее ему в подмогу
@RobertRob-tw3gu
@RobertRob-tw3gu 6 ай бұрын
С ходу лайк
@veberplank9480
@veberplank9480 6 ай бұрын
Видео отличное! Подскажи, пожалуйста, в случае, если у меня есть один интерфейс и две его реализации. Обе я регистрирую в DI. Потом мне нужно будет получать в разных местах разнве реализации. Но я буду получать только ту, которую зарегестрировал последней. Я могу создать еще по одному интерфейсу для каждой реализации. Подскажи, пожалуйста, какие хорошие практики естт для решения данной задачи.
@KirillSachkov
@KirillSachkov 6 ай бұрын
Либо добавить еще ро интерфейсу, либо использовать метод в di AddKeyed и доставать потом по ключу, либо сделать отдельный класс, который будет резолвить и выдавать нужную зависимость. Погугли di multiple implemententions, есть несколько способов, но я бы добавил ещё интерфейсов
@veberplank9480
@veberplank9480 6 ай бұрын
@@KirillSachkov спасибо)
@Дневниксамоучки-ъ1и
@Дневниксамоучки-ъ1и 6 ай бұрын
немножко не понял нужно почему внутри Worker нужен будет сервис Scope?) Точнее было бы классно если объяснили бест практики, зачем и когда это делается в каких моментах) Спасибо))
@KirillSachkov
@KirillSachkov 6 ай бұрын
Ну допустим тебе с бд надо взаимодействовать, а это scope сервис
@vasilyh4588
@vasilyh4588 29 күн бұрын
В C# (да и в любом ДРУГОМ объектно ориентированном языке) класс - ТОЖЕ АБСТРАКЦИЯ! Вот так новость! Само понятие "абстракция" - это берём объект реального мира, и переносим его в программный класс, выкидывая свойства и методы, которые нам не нужны в текущей контекстной области и оставляя/создавая/программируя те свойства и методы, которые нам нужны. В этом то и суть абстракции - выкидывать то что в данном контексте нам НЕ нужно. Банальный пример - класс Машины в игре и в CAD системе будут отличаться уровнем детализации (в игре попроще, в CAD системе - всё будет передано до последнего болта), но и там и там они - АБСТРАКЦИИ, потому что в игре не нужна слишком сильная детьализация, а в CAD системе - не найдётся места нереальным полётам на машине с обрыва. А в принципе полная детализация, без абстракции - невозможна в принципе, потому что она включает всё до молекулярного состояния реальных материалов и нет системы, на которой можно было бы потянуть НЕабстрактную модель машины. Есть УРОВНИ абстракции - интерфейс и абстрактный класс, которые служат определённым целям: 1. Интерфейс - для горизонтальной и СЛАБОЙ связи объектов (low coupling), которые в принципе не связаны, но имеют общие свойства и методы: т.е. объекты тотально разные, но нам как-то надо вызвать их методы: Дверь и банка - и метод Open() для обоих объектов может называться одинаково, но быть тотально другим по имплементации (и ХЗ зачем это обрабатывать в одной программе). 2. Абстрактный класс - для вертикальной СИЛЬНОЙ связи объектов (high coupling), чтобы переносить детализацию и конкретику выполнения в дочерние классы и продолжать иметь возможность использовать абстрактный класс, как связывающий элемент, для вызова конретного поведения в классах потомках. Именно поэтому полной детализации в абстрактном классе может и не быть, но в потомках - она ОБЯЗАТЕЛЬНО (или они тоже помечаются, как абстрактные), потому что при вызове этого метода - flow пойдёт в конкретного потомка и вызовет конкретный и реализованный метод, который в абстрактном родителе всего лишь описан, но без какого либо тела.
@artemignat7764
@artemignat7764 6 ай бұрын
Про принцып O.C.P будет?
@krivodeling7925
@krivodeling7925 2 ай бұрын
+
@aleksey2793
@aleksey2793 6 ай бұрын
А есть дли данная DI-библиотека в Unity?
@KirillSachkov
@KirillSachkov 6 ай бұрын
Есть другая, Zenject например
@zalip4129
@zalip4129 5 ай бұрын
сколько у Вас опыта разработки?
@KirillSachkov
@KirillSachkov 5 ай бұрын
Коммерческого - почти 3 года
@zalip4129
@zalip4129 5 ай бұрын
@@KirillSachkov фул стек или бекенд?
@andreyberkov1
@andreyberkov1 5 ай бұрын
КАНАЛ ЗАБРОСИЛСЯ?
@KirillSachkov
@KirillSachkov 5 ай бұрын
Нет, смотрите телеграм канал, сейчас занят другим делом, но скоро видео будут выходить чаще
@ДмитрийГуськов-б9з
@ДмитрийГуськов-б9з 5 ай бұрын
Все бы вот хорошо, но повторение ошибочной трактовки "принципа единичной ответственности" прямо бросается в глаза. Тот принцип про который вы говорите, немного про другое и не имеет отношение к SOLID. Впрочем сложно вас винить, так как это очень популярное заблуждение - даже гугл выдаёт неправильную трактовку. Обратитесь к первоисточнику - Роберту Мартину. Цитируя его "Модуль должен отвечать за одного и только за одного актора". Согласитесь, это всё же о другом. Надеюсь моё замечание не заденет вас, просто бросается в глаза.
@yava43
@yava43 6 ай бұрын
конструктор пишется сверху !!!
@KirillSachkov
@KirillSachkov 6 ай бұрын
Я панк
@yava43
@yava43 6 ай бұрын
@@KirillSachkov 😎
@lex-xv3ik
@lex-xv3ik 3 ай бұрын
@@KirillSachkov ( •̀ - •́ )
@artemignat7764
@artemignat7764 6 ай бұрын
Микрафон на букву С фонит
@ДмитрийЩетинин-з1ч
@ДмитрийЩетинин-з1ч 5 ай бұрын
Спасибо
黑天使只对C罗有感觉#short #angel #clown
00:39
Super Beauty team
Рет қаралды 36 МЛН
Une nouvelle voiture pour Noël 🥹
00:28
Nicocapone
Рет қаралды 9 МЛН
The Best Band 😅 #toshleh #viralshort
00:11
Toshleh
Рет қаралды 22 МЛН
Каха и дочка
00:28
К-Media
Рет қаралды 3,4 МЛН
Dependency Injection простыми словами
18:17
devschacht “Девшахта”
Рет қаралды 88 М.
Асинхронность в C# и Asp Net Core на ПРАКТИКЕ
1:01:41
Kirill Sachkov - Development
Рет қаралды 10 М.
WEB API C#: Criando e gerenciando banco de dados com o Visual Studio
27:49
НЕ ДОПУСТИ ЭТИ ОШИБКИ В СВОЁМ ПЕТ-ПРОЕКТЕ
18:41
Kirill Sachkov - Development
Рет қаралды 1,5 М.
ХОСТ и Kestrel в ASP.NET Core - Всё про IHostedServices
40:02
Kirill Sachkov - Development
Рет қаралды 2,5 М.
黑天使只对C罗有感觉#short #angel #clown
00:39
Super Beauty team
Рет қаралды 36 МЛН