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

แชร์
ฝัง
  • เผยแพร่เมื่อ 12 ม.ค. 2025

ความคิดเห็น • 72

  • @SachkovTech
    @SachkovTech  7 หลายเดือนก่อน +4

    Мой телеграмм канал - t.me/sachkov_blog

  • @Artw124
    @Artw124 23 ชั่วโมงที่ผ่านมา +1

    при возможности будем рады если будет видео про OOP & SOLID, это будет прям очень круто вы хорошо все объясняете!!!МОЛОДЕЦ

  • @dmitriiandrukhiv3579
    @dmitriiandrukhiv3579 2 หลายเดือนก่อน +6

    У меня 15+ лет опыта в .Net и моя оценка: Кирилл мега-крутой специалист, обладающий одновременно и глубиной понимания и способностью объяснять так, что будет понятно даже новичку. По большинству IT-ютуберов очевидно, что они даже не джуны, но почему-то решили, что могут кого-то учить. Кирилл, спасибо за твой труд, буду отправлять .Net-джунов на твой канал, ты очень крутой!

  • @JdSpot
    @JdSpot 7 หลายเดือนก่อน +35

    Кто из телеги ставьте тут лайк, посмотрим сколько нас

  • @mare2004
    @mare2004 10 วันที่ผ่านมา

    ОГРОМНОЕ СПАСИБО, долго искал канал с таким контентом, все очень доходчиво

  • @Artw124
    @Artw124 23 ชั่วโมงที่ผ่านมา +1

    круто все объяснил, спасибо за ваш труд!!!

  • @obunga506
    @obunga506 7 หลายเดือนก่อน +19

    Бро, сделай, пожалуйста, видос по микросервисам, на примере простого проекта. Думаю многим зайдет, так как тема довольно таки актуальная. Спасибо за твой труд.

  • @prumpumpumprumpumpum1607
    @prumpumpumprumpumpum1607 หลายเดือนก่อน +1

    Доходчево объяснять и демонстрировать требует не мало усилий и компетенций. Спасибо! Лайк! Успехов!

  • @rimsi8860
    @rimsi8860 2 หลายเดือนก่อน +2

    Такое приятное ощущение, я с месяц назад смотрел этот ролик и мало чего понял, сейчас после практики и немного теории понимаю ролик на лету, те кто не понял ролик прсото пересмотрите его позже через неделю, через 2 и всё будет хорошо, кто не сильно понял ролик не переживайте. Автору большое спасибо!

  • @ЖеняСероокий
    @ЖеняСероокий 2 หลายเดือนก่อน +1

    Я из GameDev и сразу научился пользоваться библиотекой Zenject. Смотрю до середины и понимаю что принципы очень похожи))) Спасибо за урок!

  • @avermaxmusic
    @avermaxmusic 2 หลายเดือนก่อน

    Очень годно и наглядно объясняешь и показываешь многие важные моменты. Не скажу, что это будет доступно тем, кто не пытался ознакомиться и понять чтиво, но если более менее в контексте - очень полезно. Лойс

  • @MrUsanik
    @MrUsanik 3 หลายเดือนก่อน +1

    Хорошая подача материала, прекрасно всё объясняете! Занимаюсь геймдевом (на Unity), но есть желание переквалифицироваться в биздев... Читаю статьи, смотрю ролики и афигеваю от того на сколько тут в целом всё архитектурно более продуманно можно сказать из коробки) Чтобы правильно понять применение DI-контейнеров и изучить соответствующие фреймворки в Unity пришлось прям напрячься, а тут всё гораздо лаконичнее и понятнее сразу, красота прям!

  • @Sergey-vh3vj
    @Sergey-vh3vj 7 หลายเดือนก่อน +4

    Отличные примеры. Объяснено очень доступно) Буду младшим коллегам отправлять ссылку для ознакомления) Спасибо за труды.

  • @YellowAK47
    @YellowAK47 3 หลายเดือนก่อน +1

    Спасибо за видео. Очень хотел сравнение со спрингом джавы. И вот получил все ответы на свои вопросы

  • @mierce
    @mierce หลายเดือนก่อน +1

    лучший канал по дотнету!

  • @vlahroman1715
    @vlahroman1715 3 หลายเดือนก่อน +1

    Смотрю уже втрой гайд от тебя, контент крутой)

  • @yuryrozhkov3896
    @yuryrozhkov3896 7 หลายเดือนก่อน +2

    Спасибо за подробный разбор этой темы.

  • @TheNexoOneChannel2
    @TheNexoOneChannel2 หลายเดือนก่อน

    Большое спасибо, теперь я понял что такое DI и с чем его едят)

  • @ilyatrukhin5992
    @ilyatrukhin5992 4 หลายเดือนก่อน +1

    Спасибо. Очень доходчиво объяснил

  • @Dima21r
    @Dima21r 7 หลายเดือนก่อน +1

    Очень классное объяснение! Спасибо за труд!

  • @marksreider7645
    @marksreider7645 7 หลายเดือนก่อน +1

    Спасибо за труды!!! Очень полезная тема

  • @Saler1-z2f
    @Saler1-z2f 5 หลายเดือนก่อน

    Как всегда отличное обьяснение
    Я наконец то понял scoped)
    Большое спасибо!

  • @Дневниксамоучки-ъ1и
    @Дневниксамоучки-ъ1и 7 หลายเดือนก่อน +1

    большое спасибо за видео, ждем по ассинхроности видео)

  • @nkt_kzmn
    @nkt_kzmn 3 หลายเดือนก่อน

    Красавчик! Спасибо за доходчивое и простое объяснение!
    +Подписка :3
    +Лайк :)

  • @shreezshreezers6067
    @shreezshreezers6067 5 หลายเดือนก่อน

    Спасибо большое за видосики, все очень круто!! Продолжай в том же духе!

  • @juniorcode41
    @juniorcode41 7 หลายเดือนก่อน +1

    Спасибо. Очень доходчиво объяснил.

  • @sorbondavlatov6208
    @sorbondavlatov6208 6 หลายเดือนก่อน +1

    Спасибо большое за видео 🤗
    Очень четко объяснил всё 🔥🔥

  • @НиколайРюмин-й6и
    @НиколайРюмин-й6и 7 หลายเดือนก่อน +1

    Классное видео. Прямо доходчиво все рассказал.

  • @less2314
    @less2314 5 หลายเดือนก่อน +1

    отличный ролик, спасибо!

  • @topowl7847
    @topowl7847 5 หลายเดือนก่อน

    Отлично объясняешь, делаю видео в так же духе. В качестве следующих тем предложу Паттерны, Микросервисы, Rabbit, Асинхронное/параллельное/многопоточное программирование, ну и конечно же примитивы синхронизации.

  • @SoulGoodman-c7j
    @SoulGoodman-c7j 6 หลายเดือนก่อน +1

    Очень круто, продолжай!

  • @IvanKadrov-e7l
    @IvanKadrov-e7l 7 หลายเดือนก่อน +1

    Супер контент! Доходчиво и понятно. Кирилл, есть предложение. Почему бы тебе на Boosty не сделать pet-проект по актуальному стеку: asp, postgres, rabbit, redis, unit тесты и т.д. Пусть он будет небольшой, но работоспособный. Думаю, многие подпишутся на такой контент, я уж точно)

  • @julik_r
    @julik_r 7 หลายเดือนก่อน +2

    Очень полезно, спасибо!

  • @НикитаЗападнов
    @НикитаЗападнов 6 หลายเดือนก่อน +1

    Крутое видео, спасибо, Кирилл!

  • @aybeksultanov6709
    @aybeksultanov6709 7 หลายเดือนก่อน +1

    Кирилл как всегда на высоте
    очень подробно ясно все объяснил, спасибо продолжай в том же духе

  • @АртемийКонь
    @АртемийКонь 7 หลายเดือนก่อน +1

    Как всегда на высоте🔥

  • @ДанилаДоманский
    @ДанилаДоманский 7 หลายเดือนก่อน +3

    Спасибо

  • @playvirtul5588
    @playvirtul5588 7 หลายเดือนก่อน +2

    Смотрим стоя

  • @murr_ka4374
    @murr_ka4374 7 หลายเดือนก่อน +1

    Коммент для продвижения видео. Как всегда топ! 😅

  • @ЕвгенийНестеров-х7г
    @ЕвгенийНестеров-х7г 5 หลายเดือนก่อน +1

    хотелось бы узнать как что произойдет если зарегать 2 реализации одного и того же интефейса и как выбрать нужную в конструкторе .
    В начале видео было про 2 реализации IMessageService но так и не раскрылось.
    Так же интересно что будет если конструкторов несколько, какой конструктор выберет DI контейнер.

  • @artemon_limon-mn1vk
    @artemon_limon-mn1vk 7 หลายเดือนก่อน +1

    Привет, запиши пожалуйста видео где показываешь как нужно реализовывать аутентификацию через соц сети пожалуйста!!!!

  • @DocMartens1972
    @DocMartens1972 7 หลายเดือนก่อน +2

    Проработал доступную подачу на практических примерах. Спасибо за материал. Кстати, какую платформу используешь на видео для рисования контейнеров, линий, стрелочек?

    • @SachkovTech
      @SachkovTech  7 หลายเดือนก่อน +1

      excalidraw

  • @Дневниксамоучки-ъ1и
    @Дневниксамоучки-ъ1и 7 หลายเดือนก่อน +1

    немножко не понял нужно почему внутри Worker нужен будет сервис Scope?) Точнее было бы классно если объяснили бест практики, зачем и когда это делается в каких моментах) Спасибо))

    • @SachkovTech
      @SachkovTech  7 หลายเดือนก่อน

      Ну допустим тебе с бд надо взаимодействовать, а это scope сервис

  • @Surf391711
    @Surf391711 7 หลายเดือนก่อน +1

    Сохранил в избранное

  • @AlexandrPuzakov
    @AlexandrPuzakov 22 วันที่ผ่านมา

    Крайне несогласен с важнейшестью DIP в SOLID. Важнейший принцип это SRP, другие принципы скорее ему в подмогу

  • @veberplank9480
    @veberplank9480 7 หลายเดือนก่อน +1

    Видео отличное!
    Подскажи, пожалуйста, в случае, если у меня есть один интерфейс и две его реализации. Обе я регистрирую в DI. Потом мне нужно будет получать в разных местах разнве реализации. Но я буду получать только ту, которую зарегестрировал последней. Я могу создать еще по одному интерфейсу для каждой реализации. Подскажи, пожалуйста, какие хорошие практики естт для решения данной задачи.

    • @SachkovTech
      @SachkovTech  7 หลายเดือนก่อน +1

      Либо добавить еще ро интерфейсу, либо использовать метод в di AddKeyed и доставать потом по ключу, либо сделать отдельный класс, который будет резолвить и выдавать нужную зависимость. Погугли di multiple implemententions, есть несколько способов, но я бы добавил ещё интерфейсов

    • @veberplank9480
      @veberplank9480 7 หลายเดือนก่อน

      @@SachkovTech спасибо)

  • @yar9721
    @yar9721 3 หลายเดือนก่อน

    Имба

  • @Eugtrader
    @Eugtrader 7 หลายเดือนก่อน +1

    Крутяк

  • @artemignat7764
    @artemignat7764 6 หลายเดือนก่อน

    Про принцып O.C.P будет?

  • @vasilyh4588
    @vasilyh4588 หลายเดือนก่อน

    В C# (да и в любом ДРУГОМ объектно ориентированном языке) класс - ТОЖЕ АБСТРАКЦИЯ! Вот так новость!
    Само понятие "абстракция" - это берём объект реального мира, и переносим его в программный класс, выкидывая свойства и методы, которые нам не нужны в текущей контекстной области и оставляя/создавая/программируя те свойства и методы, которые нам нужны. В этом то и суть абстракции - выкидывать то что в данном контексте нам НЕ нужно.
    Банальный пример - класс Машины в игре и в CAD системе будут отличаться уровнем детализации (в игре попроще, в CAD системе - всё будет передано до последнего болта), но и там и там они - АБСТРАКЦИИ, потому что в игре не нужна слишком сильная детьализация, а в CAD системе - не найдётся места нереальным полётам на машине с обрыва. А в принципе полная детализация, без абстракции - невозможна в принципе, потому что она включает всё до молекулярного состояния реальных материалов и нет системы, на которой можно было бы потянуть НЕабстрактную модель машины.
    Есть УРОВНИ абстракции - интерфейс и абстрактный класс, которые служат определённым целям:
    1. Интерфейс - для горизонтальной и СЛАБОЙ связи объектов (low coupling), которые в принципе не связаны, но имеют общие свойства и методы: т.е. объекты тотально разные, но нам как-то надо вызвать их методы: Дверь и банка - и метод Open() для обоих объектов может называться одинаково, но быть тотально другим по имплементации (и ХЗ зачем это обрабатывать в одной программе).
    2. Абстрактный класс - для вертикальной СИЛЬНОЙ связи объектов (high coupling), чтобы переносить детализацию и конкретику выполнения в дочерние классы и продолжать иметь возможность использовать абстрактный класс, как связывающий элемент, для вызова конретного поведения в классах потомках. Именно поэтому полной детализации в абстрактном классе может и не быть, но в потомках - она ОБЯЗАТЕЛЬНО (или они тоже помечаются, как абстрактные), потому что при вызове этого метода - flow пойдёт в конкретного потомка и вызовет конкретный и реализованный метод, который в абстрактном родителе всего лишь описан, но без какого либо тела.

  • @RobertRob-tw3gu
    @RobertRob-tw3gu 7 หลายเดือนก่อน +1

    С ходу лайк

  • @aleksey2793
    @aleksey2793 6 หลายเดือนก่อน

    А есть дли данная DI-библиотека в Unity?

    • @SachkovTech
      @SachkovTech  6 หลายเดือนก่อน +1

      Есть другая, Zenject например

  • @dv5946
    @dv5946 7 หลายเดือนก่อน +1

    кайф

  • @zalip4129
    @zalip4129 6 หลายเดือนก่อน

    сколько у Вас опыта разработки?

    • @SachkovTech
      @SachkovTech  6 หลายเดือนก่อน

      Коммерческого - почти 3 года

    • @zalip4129
      @zalip4129 6 หลายเดือนก่อน

      @@SachkovTech фул стек или бекенд?

  • @krivodeling7925
    @krivodeling7925 2 หลายเดือนก่อน +1

    +

  • @andreyberkov1
    @andreyberkov1 6 หลายเดือนก่อน

    КАНАЛ ЗАБРОСИЛСЯ?

    • @SachkovTech
      @SachkovTech  6 หลายเดือนก่อน

      Нет, смотрите телеграм канал, сейчас занят другим делом, но скоро видео будут выходить чаще

  • @ДмитрийГуськов-б9з
    @ДмитрийГуськов-б9з 5 หลายเดือนก่อน

    Все бы вот хорошо, но повторение ошибочной трактовки "принципа единичной ответственности" прямо бросается в глаза. Тот принцип про который вы говорите, немного про другое и не имеет отношение к SOLID. Впрочем сложно вас винить, так как это очень популярное заблуждение - даже гугл выдаёт неправильную трактовку. Обратитесь к первоисточнику - Роберту Мартину. Цитируя его "Модуль должен отвечать за одного и только за одного актора". Согласитесь, это всё же о другом.
    Надеюсь моё замечание не заденет вас, просто бросается в глаза.

  • @yava43
    @yava43 7 หลายเดือนก่อน +1

    конструктор пишется сверху !!!

    • @SachkovTech
      @SachkovTech  7 หลายเดือนก่อน +4

      Я панк

    • @yava43
      @yava43 7 หลายเดือนก่อน

      @@SachkovTech 😎

    • @lex-xv3ik
      @lex-xv3ik 4 หลายเดือนก่อน +1

      @@SachkovTech ( •̀ - •́ )

  • @artemignat7764
    @artemignat7764 6 หลายเดือนก่อน

    Микрафон на букву С фонит

  • @ДмитрийЩетинин-з1ч
    @ДмитрийЩетинин-з1ч 6 หลายเดือนก่อน +1

    Спасибо