Inversion of Control, Dependency Injection, DI Container - что это такое и кто все эти люди?

  Рет қаралды 20,437

R class Tech

R class Tech

Күн бұрын

В этом видео мы поговорим о:
Inversion of Control (Инверсия управления, инверсия контроля)
Dependency Injection (Инъекция зависимостей, внедрение зависимостей)
Dependency Injection Container (DI Container)
Service Locator
Расскажем что это такое и покажем реализацию этих штук на примере PHP.
Пачка примеров и мемасиков, всё как обычно :)
Презентация:
docs.google.co...

Пікірлер: 121
@nikitanyn4980
@nikitanyn4980 Жыл бұрын
Топ спикер, смотрю для того, что непонятно очевидно при написании кода. Всем советую! в 2023 актуально
@Rclass
@Rclass Жыл бұрын
Спасибо за приятный отзыв :)
@AlexeySivak
@AlexeySivak Жыл бұрын
Ребята, Спасибо! Все оказалось проще чем догадывалось. Форма подачи отличная - это талант. Поразило как php схож с c# и вся эта ранее странная бодяга php с asp.
@Rclass
@Rclass Жыл бұрын
Пожалуйста :) Да по большому счету главное понимать суть, а язык лишь инструмент :)
@IvanBlaBlaBla
@IvanBlaBlaBla 3 жыл бұрын
Как всегда - лучше один раз увидеть, чем два раза прочитать ))
@Rclass
@Rclass 3 жыл бұрын
Именно так :)
@romanliapkin5174
@romanliapkin5174 2 жыл бұрын
Я раз 30 читал , непонятно было.
@ЯрославОкулов-г4ъ
@ЯрославОкулов-г4ъ 3 жыл бұрын
Всё максимально интересно понятно и доступно рассказано, спасибо большое!
@pozytron-code
@pozytron-code 3 жыл бұрын
человек не успел рассказать, 5 минут назад всё началось - но уже доступно рассказано?)))) magic ))
@Rclass
@Rclass 3 жыл бұрын
Он тот, кто осилил С++ за 21 день. Если вы понимаете о чем я :)
@ny_sho_ti_dyadya
@ny_sho_ti_dyadya 3 жыл бұрын
Спасибо, наконец то стало намного понятнее. Но уверен буду пересматривать ещё раз 10)
@Rclass
@Rclass 3 жыл бұрын
Спасибо, мы старались :)
@alekseykononenko7897
@alekseykononenko7897 8 ай бұрын
Всё понятно и доступно, осталось только применить полученные знания на практике. Большое спасибо!
@Rclass
@Rclass 8 ай бұрын
Спасибо, мы старались сделать понятно :)
@specificcross
@specificcross Жыл бұрын
Класно! Пересмотрев кучу роликов на ютубе на эту тему, а там всё на непонятном языке - будто я при просмотре уже должен знать что такое DI и IoC. И наткнулся на этот канал, после просмотра всё стало понятно ( и это с учетом того , что я в жизни не писал на Php )
@Rclass
@Rclass Жыл бұрын
Спасибо! Очень приятно что смогли вам помочь разобраться в этой теме :)
@Роман-н5ч3и
@Роман-н5ч3и Жыл бұрын
Лучшее объяснение!
@Rclass
@Rclass Жыл бұрын
Спасибо!
@BakhtiyorBahriddinov
@BakhtiyorBahriddinov Жыл бұрын
Автору респект. Объясняет простым и понятным языком и еще с конкретными примерами. Уважуха 🙏
@Rclass
@Rclass Жыл бұрын
Спасибо, мы старались :)
@le_mon_tree
@le_mon_tree 4 ай бұрын
большое спасибо за объяснение что это происходит именно внутри фреймворка и именно в тех местах, которые нам выделены для написания кода и что мы не всегда имеем над ними полный контроль!
@Rclass
@Rclass 4 ай бұрын
Старались для вас 😊
@yuryitikhonoff9631
@yuryitikhonoff9631 3 жыл бұрын
Cool. Great manner of explanation. I wish all hosts of coding conferences use such a manner instead of bunch of silly memes. Good job.
@Rclass
@Rclass 3 жыл бұрын
Thanks! We also like memes but use them only for illustrative purposes.
@erikdeveloper
@erikdeveloper Жыл бұрын
Супер доклад, нравится когда рассказываешь своим языком, без академических терминов 😅
@Rclass
@Rclass Жыл бұрын
Спасибо, стараемся для вас)
@Dethrockerbass
@Dethrockerbass Жыл бұрын
Не знаю, как я сюда попал, но теперь понял, как работает (внезапно) спринг. Спасибо!
@Rclass
@Rclass Жыл бұрын
Всегда пожалуйста :)
@ruPhotoLamb
@ruPhotoLamb 2 жыл бұрын
Прекрасная пподача материала! Спасибо за простые примеры и наглядные слайды 👍
@Rclass
@Rclass 2 жыл бұрын
Спасибо за отклик :) Мы старались :)
@ВиталийВолосов-ъ4х
@ВиталийВолосов-ъ4х 11 ай бұрын
Отлично, весело, и просто! Маладец!!!!
@Rclass
@Rclass 11 ай бұрын
Стараемся для вас :)
@dkorotaeva
@dkorotaeva 3 жыл бұрын
Ничего не понятно, но очень интересно - так было до этого видоса) Теперь все понятно, спасибо! Буду смотреть ещё!))
@Rclass
@Rclass 3 жыл бұрын
Спасибо, мы старались :)
@tillfurthernotice-k5x
@tillfurthernotice-k5x 3 жыл бұрын
Круто, не забрасывайте контент. Благодаря вам освоил базу по бд.
@OkulovAnton
@OkulovAnton 3 жыл бұрын
Круто! Вам спасибо что смотрите :)
@Rclass
@Rclass 3 жыл бұрын
Спасибо что вы с нами :)
@АленаЕршова-ъ5ю
@АленаЕршова-ъ5ю 6 ай бұрын
Антон, вы супер объясняете! Спасибо!
@Rclass
@Rclass 6 ай бұрын
Спасибо, стараемся :)
@Bfiabecksjbdicbsjzkkxnsh
@Bfiabecksjbdicbsjzkkxnsh 6 ай бұрын
ведущий позитивный, класс)
@Rclass
@Rclass 6 ай бұрын
Спасибо, мы стараемся)
@docker_academy
@docker_academy Жыл бұрын
Очень много видео смотерл по этой теме и читал статьи на хабре, но этот видеоролик самый ценный из всех что я позновал по DI
@Rclass
@Rclass Жыл бұрын
Спасибо за приятный отклик :)
@danilx6239
@danilx6239 Жыл бұрын
Очень круто, не ожидал. Всё понятно, не скучно и супер-подробно. Не смотря на то, что я пишу на JS, ваши примеры помогли понять основную суть. Только не понял, откуда берется файл конфига и почему емеил и id-телеграмма туда уже зашити. Но это наверное больше пхп-тема, а не JS... Спасибо за материал!
@Rclass
@Rclass Жыл бұрын
Спасибо, мы старались сделать понятно :)
@ProRezak
@ProRezak 3 жыл бұрын
Давно следую DI, но только теперь все стало ясно от и до. Спасибо
@Rclass
@Rclass 3 жыл бұрын
Спасибо, мы старались :)
@cumar8585
@cumar8585 2 жыл бұрын
Шикарный лектор умеет рассказать интересно, понятно и не скучно.
@Rclass
@Rclass 2 жыл бұрын
Спасибо большое, стараемся для вас :)
@rusichvil
@rusichvil 2 жыл бұрын
Спасибо за интересное видео! Отдельный плюс за подачу материала!
@Rclass
@Rclass 2 жыл бұрын
Спасибо что с нами :) Стараемся для вас :)
@DIMANVAZ04
@DIMANVAZ04 Жыл бұрын
Вы лучший. Хоть я и джаваскриптизёр.
@Rclass
@Rclass Жыл бұрын
Спасибо! Джавскриптизёр - это надо запомнить. Все мы нет-нет да и джаваскриптизёры.
@kafychannel
@kafychannel Жыл бұрын
получил удовольствие, спасибо огромное :))
@Rclass
@Rclass Жыл бұрын
Спасибо за отклик, мы старались :)
@alenka_mak
@alenka_mak 2 жыл бұрын
Великолепно изложено! Антон просто супер спикер))))
@Rclass
@Rclass 2 жыл бұрын
Спасибо :)
@rvkrasyl
@rvkrasyl 2 жыл бұрын
Крута подача матеріалу, дуже дякую за відео
@Rclass
@Rclass 2 жыл бұрын
будь ласка!
@bra1nlagwe
@bra1nlagwe 3 жыл бұрын
Здорово! буквально на пальцах с примерами и мемасиками!)
@Rclass
@Rclass 3 жыл бұрын
Спасибо, мы старались :)
@twentxx
@twentxx Жыл бұрын
Докладчик топ 🔝👍 Жги ещё 😅
@Rclass
@Rclass Жыл бұрын
Спасибо, мы старались)
@cheto-chel
@cheto-chel 7 ай бұрын
Очень круто розжевал. Иногда автор затачивает видео под какой-то конкретный язык что на мое мнение не является правильным так как язык это просто инструмент. В этом видео все будет понятно в не зависимости от языка программирования. Спасибо)
@Rclass
@Rclass 7 ай бұрын
Именно этого и хотелось добиться, спасибо :)
@kudrvet
@kudrvet 3 жыл бұрын
Классный контент! Разжевано и с примерами ! Продолжайте в том же духе)
@Rclass
@Rclass 3 жыл бұрын
Спасибо, мы старались :)
@varvarskaya
@varvarskaya 3 жыл бұрын
Спасибо как всегда🙏🙏 Такая инфа полезная ещё и бесплатно!!
@Rclass
@Rclass 3 жыл бұрын
Спасибо, мы старались :)
@web_kub
@web_kub 3 жыл бұрын
Супер, спасибо! Все стало ясно!
@Rclass
@Rclass 3 жыл бұрын
Спасибо, мы старались :)
@АнтонИгумнов-ш2о
@АнтонИгумнов-ш2о 3 жыл бұрын
Лайк за примеры👍 Понять получилось быстрее в отличие от чтения документации
@AlexKhaizeman
@AlexKhaizeman 3 жыл бұрын
Поэтому и пришлось снять... Я прочитала документацию и отправила мужика-на-фоне-ковра :(
@Rclass
@Rclass 3 жыл бұрын
А как же лайк за мемасы(
@fazleev
@fazleev 3 жыл бұрын
Великолепное объяснение
@Rclass
@Rclass 3 жыл бұрын
Спасибо, мы старались :)
@saharaprotocol
@saharaprotocol Жыл бұрын
Спасибо мужик.
@Rclass
@Rclass Жыл бұрын
Для вас стараемся)
@winstonwolf2981
@winstonwolf2981 2 жыл бұрын
Отличное объяснение, спасибо
@Rclass
@Rclass 2 жыл бұрын
Спасибо, для вас стараемся :)
@mohamednabil9509
@mohamednabil9509 Жыл бұрын
Great explanation
@Rclass
@Rclass Жыл бұрын
Thx!
@underpershin
@underpershin Жыл бұрын
Отличное виде, спасибо!!!❤
@Rclass
@Rclass Жыл бұрын
Стараемся для вас :)
@nkf-v
@nkf-v 2 жыл бұрын
Кайфовая презентация
@Rclass
@Rclass 2 жыл бұрын
Спасибо, мы старались :)
@Mr43046721
@Mr43046721 2 жыл бұрын
Очень крутой рассказчик))
@Rclass
@Rclass 2 жыл бұрын
Спасибо, очень приятно ^_^
@AlexKhaizeman
@AlexKhaizeman 3 жыл бұрын
Лайк за мемасы =)
@username739
@username739 2 жыл бұрын
Подписка однозначно)
@Rclass
@Rclass 2 жыл бұрын
Спасибо, мы старались :)
@alexandrmakovkin7364
@alexandrmakovkin7364 2 жыл бұрын
классно объяснил. было бы не плохо основные паттерны программирования послушать
@Rclass
@Rclass 2 жыл бұрын
Не первый раз уже получаю такие запросы, можно попробовать
@alexandrmakovkin7364
@alexandrmakovkin7364 2 жыл бұрын
@@Rclass спасибо. с DI получилось отлично.
@jlvby
@jlvby 6 ай бұрын
У Зандстры в книге есть рекурсивный DI-контейнер
@Rclass
@Rclass 6 ай бұрын
🚀
@awesomegamedev
@awesomegamedev 2 жыл бұрын
Хорошее объяснение и видео, но Dependency Injection, начиная с 24:08 похоже на ООП головного мозга. Вместо того, что нам предоставляет язык, мы (вернее создатели фреймворка) наинженерили свой "язык" в виде объекта конфигурации, который я на 99% уверен не строго-типизированный, а значит которому будет свойственна ранее описанная проблема: код (редкая, но дорогая покупка) упадёт только, когда до него дойдёт исполнение. При этом с Service Locator по сути описана только одна проблема: нестрогая типизация и соответствующая возможность подставить что угодно во что угодно, и она решается ... использованием строго типизированного языка (внезапно). Я не знаток PHP, но на TypeScript можно просто объявить объект: const Locator = { notifySender: new EmailNotifySender('asdf'), userLoggerNotifier: new UserLoggedNotifier(), } И если хоть какого-то метода где-то будет не-хватать, то код просто не скомпилится. Да, это глобальный объект, но Dependency Injection Container - это по сути тоже глобальный объект, просто неявный. А из-за того, что он неявный, кстати, тоже возникает куча проблем по типу невозможности нормально использовать в редакторе кода функции "Find all references". Мне приходилось работать в одном таком проекте и разбираться в магических скрытых связях того, что откуда что вызывает.
@Rclass
@Rclass 2 жыл бұрын
Нет желания вас переубеждать. Если вас устраивает сервис-локатор и вы не сталкиваетесь с проблемами, при его использовании, то тогда нет смысла его менять на DI :)
@ardixq
@ardixq 2 жыл бұрын
норм обьясняешь
@Rclass
@Rclass 2 жыл бұрын
Спасибо, мы старались :)
@kavabanger88
@kavabanger88 Жыл бұрын
Так ДИ это тот же сервис локатор, просто механизм этот сам подставляет компоненты куда надо а не мы ручками?
@Rclass
@Rclass Жыл бұрын
В этом и есть их различие)
@SemyonF89
@SemyonF89 11 ай бұрын
Вот с таким тимЛидом можно работать!
@Rclass
@Rclass 11 ай бұрын
Ну так мы и работаем :) И очень довольны :)
@SemyonF89
@SemyonF89 11 ай бұрын
@@Rclass Везёт :D
@websoda
@websoda 3 жыл бұрын
привет с ютуба
@OkulovAnton
@OkulovAnton 3 жыл бұрын
Привет, Саня!
@Rclass
@Rclass 3 жыл бұрын
Привет! 👋
@DIEsel27031992
@DIEsel27031992 2 жыл бұрын
Есть ли способ как-то отлавливать ошибки регистрации реализаций для интерфейсов в контейнере (например, отсутствие реализации для какого-то интерфейса, которую забыли указать) во время компиляции, а не в рантайме?
@Rclass
@Rclass 2 жыл бұрын
Если я ничего не путаю, то Symfony при компиляции кеша так и делает. Но это все равно по большому счету рантайм. Как в C# / Java не подскажу( Скорее зависит от конкретной реализации.
@DIEsel27031992
@DIEsel27031992 2 жыл бұрын
@@Rclass про Delphi можно не спрашивать? 😀
@andreysvitlov7807
@andreysvitlov7807 3 жыл бұрын
а какая будет структура классов и код если надо отправить и/или по email и telegram в зависимости от настроек пользователя ? и не на email указаный при инициализации а на email пользователя ?
@Rclass
@Rclass 3 жыл бұрын
В каждом отдельном случае надо рассматривать ситуацию отдельно :)
@alexanderstepin
@alexanderstepin Жыл бұрын
А в чем отличие service locator от паттерна реестр(registry)?
@Rclass
@Rclass Жыл бұрын
По сути ни в чем :)
@wickedtorpedo75
@wickedtorpedo75 7 ай бұрын
хочется чтобы учитель был моим тимлидом в проекте
@Rclass
@Rclass 7 ай бұрын
Спасибо, стараемся :)
@litvinenkow
@litvinenkow Жыл бұрын
laravel конечно круче это всё делает и думать не надо, но в symfony немножко всё-таки думать придётся)
@Rclass
@Rclass Жыл бұрын
Рано или поздно надо будет думать) И вот лучше рано, как показывает практика :)
@ЯковЛазоренко
@ЯковЛазоренко Жыл бұрын
Факт это что?
@Rclass
@Rclass Жыл бұрын
Это наш старенький и уже давно заброшенный фреймворк)
小路飞嫁祸姐姐搞破坏 #路飞#海贼王
00:45
路飞与唐舞桐
Рет қаралды 29 МЛН
啊?就这么水灵灵的穿上了?
00:18
一航1
Рет қаралды 45 МЛН
Kluster Duo #настольныеигры #boardgames #игры #games #настолки #настольные_игры
00:47
Every parent is like this ❤️💚💚💜💙
00:10
Like Asiya
Рет қаралды 25 МЛН
PHP ООП: внедрение зависимостей и магия рефлексии
1:21:13
Пакетные менеджеры, composer, lock-файлы
17:21
PHP 8.0 - 8.2 | Производительность и фичи
18:19
№103: Dependency Injection в JavaScript
26:01
devschacht “Девшахта”
Рет қаралды 15 М.
Dependency Injection & Inversion of Control
11:00
Ryan Schachte
Рет қаралды 198 М.
小路飞嫁祸姐姐搞破坏 #路飞#海贼王
00:45
路飞与唐舞桐
Рет қаралды 29 МЛН