У меня 15+ лет опыта в .Net и моя оценка: Кирилл мега-крутой специалист, обладающий одновременно и глубиной понимания и способностью объяснять так, что будет понятно даже новичку. По большинству IT-ютуберов очевидно, что они даже не джуны, но почему-то решили, что могут кого-то учить. Кирилл, спасибо за твой труд, буду отправлять .Net-джунов на твой канал, ты очень крутой!
@JdSpot6 ай бұрын
Кто из телеги ставьте тут лайк, посмотрим сколько нас
@prumpumpumprumpumpum1607Ай бұрын
Доходчево объяснять и демонстрировать требует не мало усилий и компетенций. Спасибо! Лайк! Успехов!
@obunga5066 ай бұрын
Бро, сделай, пожалуйста, видос по микросервисам, на примере простого проекта. Думаю многим зайдет, так как тема довольно таки актуальная. Спасибо за твой труд.
@rimsi88602 ай бұрын
Такое приятное ощущение, я с месяц назад смотрел этот ролик и мало чего понял, сейчас после практики и немного теории понимаю ролик на лету, те кто не понял ролик прсото пересмотрите его позже через неделю, через 2 и всё будет хорошо, кто не сильно понял ролик не переживайте. Автору большое спасибо!
@mierceАй бұрын
лучший канал по дотнету!
@ЖеняСероокий2 ай бұрын
Я из GameDev и сразу научился пользоваться библиотекой Zenject. Смотрю до середины и понимаю что принципы очень похожи))) Спасибо за урок!
@TheNexoOneChannel224 күн бұрын
Большое спасибо, теперь я понял что такое DI и с чем его едят)
@avermaxmusicАй бұрын
Очень годно и наглядно объясняешь и показываешь многие важные моменты. Не скажу, что это будет доступно тем, кто не пытался ознакомиться и понять чтиво, но если более менее в контексте - очень полезно. Лойс
@MrUsanik3 ай бұрын
Хорошая подача материала, прекрасно всё объясняете! Занимаюсь геймдевом (на Unity), но есть желание переквалифицироваться в биздев... Читаю статьи, смотрю ролики и афигеваю от того на сколько тут в целом всё архитектурно более продуманно можно сказать из коробки) Чтобы правильно понять применение DI-контейнеров и изучить соответствующие фреймворки в Unity пришлось прям напрячься, а тут всё гораздо лаконичнее и понятнее сразу, красота прям!
@YellowAK472 ай бұрын
Спасибо за видео. Очень хотел сравнение со спрингом джавы. И вот получил все ответы на свои вопросы
@ilyatrukhin59923 ай бұрын
Спасибо. Очень доходчиво объяснил
@vlahroman17152 ай бұрын
Смотрю уже втрой гайд от тебя, контент крутой)
@Sergey-vh3vj6 ай бұрын
Отличные примеры. Объяснено очень доступно) Буду младшим коллегам отправлять ссылку для ознакомления) Спасибо за труды.
@yuryrozhkov38966 ай бұрын
Спасибо за подробный разбор этой темы.
@nkt_kzmn2 ай бұрын
Красавчик! Спасибо за доходчивое и простое объяснение! +Подписка :3 +Лайк :)
@juniorcode416 ай бұрын
Спасибо. Очень доходчиво объяснил.
@less23144 ай бұрын
отличный ролик, спасибо!
@marksreider76456 ай бұрын
Спасибо за труды!!! Очень полезная тема
@sorbondavlatov62086 ай бұрын
Спасибо большое за видео 🤗 Очень четко объяснил всё 🔥🔥
@Saler1-z2f5 ай бұрын
Как всегда отличное обьяснение Я наконец то понял scoped) Большое спасибо!
@Dima21r6 ай бұрын
Очень классное объяснение! Спасибо за труд!
@shreezshreezers60674 ай бұрын
Спасибо большое за видосики, все очень круто!! Продолжай в том же духе!
@Дневниксамоучки-ъ1и6 ай бұрын
большое спасибо за видео, ждем по ассинхроности видео)
@ДанилаДоманский6 ай бұрын
Спасибо
@SoulGoodman-c7j5 ай бұрын
Очень круто, продолжай!
@НиколайРюмин-й6и6 ай бұрын
Классное видео. Прямо доходчиво все рассказал.
@НикитаЗападнов6 ай бұрын
Крутое видео, спасибо, Кирилл!
@АртемийКонь6 ай бұрын
Как всегда на высоте🔥
@aybeksultanov67096 ай бұрын
Кирилл как всегда на высоте очень подробно ясно все объяснил, спасибо продолжай в том же духе
@julik_r6 ай бұрын
Очень полезно, спасибо!
@IvanKadrov-e7l6 ай бұрын
Супер контент! Доходчиво и понятно. Кирилл, есть предложение. Почему бы тебе на Boosty не сделать pet-проект по актуальному стеку: asp, postgres, rabbit, redis, unit тесты и т.д. Пусть он будет небольшой, но работоспособный. Думаю, многие подпишутся на такой контент, я уж точно)
@topowl78475 ай бұрын
Отлично объясняешь, делаю видео в так же духе. В качестве следующих тем предложу Паттерны, Микросервисы, Rabbit, Асинхронное/параллельное/многопоточное программирование, ну и конечно же примитивы синхронизации.
@murr_ka43746 ай бұрын
Коммент для продвижения видео. Как всегда топ! 😅
@playvirtul55886 ай бұрын
Смотрим стоя
@yar97213 ай бұрын
Имба
@DocMartens19726 ай бұрын
Проработал доступную подачу на практических примерах. Спасибо за материал. Кстати, какую платформу используешь на видео для рисования контейнеров, линий, стрелочек?
@KirillSachkov6 ай бұрын
excalidraw
@Eugtrader6 ай бұрын
Крутяк
@Surf3917116 ай бұрын
Сохранил в избранное
@ЕвгенийНестеров-х7г5 ай бұрын
хотелось бы узнать как что произойдет если зарегать 2 реализации одного и того же интефейса и как выбрать нужную в конструкторе . В начале видео было про 2 реализации IMessageService но так и не раскрылось. Так же интересно что будет если конструкторов несколько, какой конструктор выберет DI контейнер.
@dv59466 ай бұрын
кайф
@artemon_limon-mn1vk6 ай бұрын
Привет, запиши пожалуйста видео где показываешь как нужно реализовывать аутентификацию через соц сети пожалуйста!!!!
@AlexandrPuzakov4 күн бұрын
Крайне несогласен с важнейшестью DIP в SOLID. Важнейший принцип это SRP, другие принципы скорее ему в подмогу
@RobertRob-tw3gu6 ай бұрын
С ходу лайк
@veberplank94806 ай бұрын
Видео отличное! Подскажи, пожалуйста, в случае, если у меня есть один интерфейс и две его реализации. Обе я регистрирую в DI. Потом мне нужно будет получать в разных местах разнве реализации. Но я буду получать только ту, которую зарегестрировал последней. Я могу создать еще по одному интерфейсу для каждой реализации. Подскажи, пожалуйста, какие хорошие практики естт для решения данной задачи.
@KirillSachkov6 ай бұрын
Либо добавить еще ро интерфейсу, либо использовать метод в di AddKeyed и доставать потом по ключу, либо сделать отдельный класс, который будет резолвить и выдавать нужную зависимость. Погугли di multiple implemententions, есть несколько способов, но я бы добавил ещё интерфейсов
@veberplank94806 ай бұрын
@@KirillSachkov спасибо)
@Дневниксамоучки-ъ1и6 ай бұрын
немножко не понял нужно почему внутри Worker нужен будет сервис Scope?) Точнее было бы классно если объяснили бест практики, зачем и когда это делается в каких моментах) Спасибо))
@KirillSachkov6 ай бұрын
Ну допустим тебе с бд надо взаимодействовать, а это scope сервис
@vasilyh458829 күн бұрын
В C# (да и в любом ДРУГОМ объектно ориентированном языке) класс - ТОЖЕ АБСТРАКЦИЯ! Вот так новость! Само понятие "абстракция" - это берём объект реального мира, и переносим его в программный класс, выкидывая свойства и методы, которые нам не нужны в текущей контекстной области и оставляя/создавая/программируя те свойства и методы, которые нам нужны. В этом то и суть абстракции - выкидывать то что в данном контексте нам НЕ нужно. Банальный пример - класс Машины в игре и в CAD системе будут отличаться уровнем детализации (в игре попроще, в CAD системе - всё будет передано до последнего болта), но и там и там они - АБСТРАКЦИИ, потому что в игре не нужна слишком сильная детьализация, а в CAD системе - не найдётся места нереальным полётам на машине с обрыва. А в принципе полная детализация, без абстракции - невозможна в принципе, потому что она включает всё до молекулярного состояния реальных материалов и нет системы, на которой можно было бы потянуть НЕабстрактную модель машины. Есть УРОВНИ абстракции - интерфейс и абстрактный класс, которые служат определённым целям: 1. Интерфейс - для горизонтальной и СЛАБОЙ связи объектов (low coupling), которые в принципе не связаны, но имеют общие свойства и методы: т.е. объекты тотально разные, но нам как-то надо вызвать их методы: Дверь и банка - и метод Open() для обоих объектов может называться одинаково, но быть тотально другим по имплементации (и ХЗ зачем это обрабатывать в одной программе). 2. Абстрактный класс - для вертикальной СИЛЬНОЙ связи объектов (high coupling), чтобы переносить детализацию и конкретику выполнения в дочерние классы и продолжать иметь возможность использовать абстрактный класс, как связывающий элемент, для вызова конретного поведения в классах потомках. Именно поэтому полной детализации в абстрактном классе может и не быть, но в потомках - она ОБЯЗАТЕЛЬНО (или они тоже помечаются, как абстрактные), потому что при вызове этого метода - flow пойдёт в конкретного потомка и вызовет конкретный и реализованный метод, который в абстрактном родителе всего лишь описан, но без какого либо тела.
@artemignat77646 ай бұрын
Про принцып O.C.P будет?
@krivodeling79252 ай бұрын
+
@aleksey27936 ай бұрын
А есть дли данная DI-библиотека в Unity?
@KirillSachkov6 ай бұрын
Есть другая, Zenject например
@zalip41295 ай бұрын
сколько у Вас опыта разработки?
@KirillSachkov5 ай бұрын
Коммерческого - почти 3 года
@zalip41295 ай бұрын
@@KirillSachkov фул стек или бекенд?
@andreyberkov15 ай бұрын
КАНАЛ ЗАБРОСИЛСЯ?
@KirillSachkov5 ай бұрын
Нет, смотрите телеграм канал, сейчас занят другим делом, но скоро видео будут выходить чаще
@ДмитрийГуськов-б9з5 ай бұрын
Все бы вот хорошо, но повторение ошибочной трактовки "принципа единичной ответственности" прямо бросается в глаза. Тот принцип про который вы говорите, немного про другое и не имеет отношение к SOLID. Впрочем сложно вас винить, так как это очень популярное заблуждение - даже гугл выдаёт неправильную трактовку. Обратитесь к первоисточнику - Роберту Мартину. Цитируя его "Модуль должен отвечать за одного и только за одного актора". Согласитесь, это всё же о другом. Надеюсь моё замечание не заденет вас, просто бросается в глаза.