No video

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

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

R class Tech

R class Tech

3 жыл бұрын

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

Пікірлер: 121
@nikitanyn4980
@nikitanyn4980 Жыл бұрын
Топ спикер, смотрю для того, что непонятно очевидно при написании кода. Всем советую! в 2023 актуально
@Rclass
@Rclass Жыл бұрын
Спасибо за приятный отзыв :)
@IvanBlaBlaBla
@IvanBlaBlaBla 3 жыл бұрын
Как всегда - лучше один раз увидеть, чем два раза прочитать ))
@Rclass
@Rclass 3 жыл бұрын
Именно так :)
@romanliapkin5174
@romanliapkin5174 2 жыл бұрын
Я раз 30 читал , непонятно было.
@AlexeySivak
@AlexeySivak Жыл бұрын
Ребята, Спасибо! Все оказалось проще чем догадывалось. Форма подачи отличная - это талант. Поразило как php схож с c# и вся эта ранее странная бодяга php с asp.
@Rclass
@Rclass Жыл бұрын
Пожалуйста :) Да по большому счету главное понимать суть, а язык лишь инструмент :)
@le_mon_tree
@le_mon_tree 2 ай бұрын
большое спасибо за объяснение что это происходит именно внутри фреймворка и именно в тех местах, которые нам выделены для написания кода и что мы не всегда имеем над ними полный контроль!
@Rclass
@Rclass 2 ай бұрын
Старались для вас 😊
@user-np8hb3sj6p
@user-np8hb3sj6p 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 жыл бұрын
Спасибо, мы старались :)
@specificcross
@specificcross Жыл бұрын
Класно! Пересмотрев кучу роликов на ютубе на эту тему, а там всё на непонятном языке - будто я при просмотре уже должен знать что такое DI и IoC. И наткнулся на этот канал, после просмотра всё стало понятно ( и это с учетом того , что я в жизни не писал на Php )
@Rclass
@Rclass Жыл бұрын
Спасибо! Очень приятно что смогли вам помочь разобраться в этой теме :)
@alekseykononenko7897
@alekseykononenko7897 6 ай бұрын
Всё понятно и доступно, осталось только применить полученные знания на практике. Большое спасибо!
@Rclass
@Rclass 6 ай бұрын
Спасибо, мы старались сделать понятно :)
@cumar8585
@cumar8585 Жыл бұрын
Шикарный лектор умеет рассказать интересно, понятно и не скучно.
@Rclass
@Rclass Жыл бұрын
Спасибо большое, стараемся для вас :)
@danilx6239
@danilx6239 Жыл бұрын
Очень круто, не ожидал. Всё понятно, не скучно и супер-подробно. Не смотря на то, что я пишу на JS, ваши примеры помогли понять основную суть. Только не понял, откуда берется файл конфига и почему емеил и id-телеграмма туда уже зашити. Но это наверное больше пхп-тема, а не JS... Спасибо за материал!
@Rclass
@Rclass Жыл бұрын
Спасибо, мы старались сделать понятно :)
@yuryitikhonoff9631
@yuryitikhonoff9631 2 жыл бұрын
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 2 жыл бұрын
Thanks! We also like memes but use them only for illustrative purposes.
@BakhtiyorBahriddinov
@BakhtiyorBahriddinov Жыл бұрын
Автору респект. Объясняет простым и понятным языком и еще с конкретными примерами. Уважуха 🙏
@Rclass
@Rclass Жыл бұрын
Спасибо, мы старались :)
@erikdeveloper
@erikdeveloper Жыл бұрын
Супер доклад, нравится когда рассказываешь своим языком, без академических терминов 😅
@Rclass
@Rclass Жыл бұрын
Спасибо, стараемся для вас)
@ruPhotoLamb
@ruPhotoLamb 2 жыл бұрын
Прекрасная пподача материала! Спасибо за простые примеры и наглядные слайды 👍
@Rclass
@Rclass 2 жыл бұрын
Спасибо за отклик :) Мы старались :)
@dkorotaeva
@dkorotaeva 3 жыл бұрын
Ничего не понятно, но очень интересно - так было до этого видоса) Теперь все понятно, спасибо! Буду смотреть ещё!))
@Rclass
@Rclass 3 жыл бұрын
Спасибо, мы старались :)
@kafychannel
@kafychannel Жыл бұрын
получил удовольствие, спасибо огромное :))
@Rclass
@Rclass Жыл бұрын
Спасибо за отклик, мы старались :)
@alenka_mak
@alenka_mak 2 жыл бұрын
Великолепно изложено! Антон просто супер спикер))))
@Rclass
@Rclass 2 жыл бұрын
Спасибо :)
@user-nf1td4hh7y
@user-nf1td4hh7y 4 ай бұрын
Антон, вы супер объясняете! Спасибо!
@Rclass
@Rclass 4 ай бұрын
Спасибо, стараемся :)
@bra1nlagwe
@bra1nlagwe 3 жыл бұрын
Здорово! буквально на пальцах с примерами и мемасиками!)
@Rclass
@Rclass 3 жыл бұрын
Спасибо, мы старались :)
@user-ei5ve3zl7k
@user-ei5ve3zl7k 3 жыл бұрын
Круто, не забрасывайте контент. Благодаря вам освоил базу по бд.
@OkulovAnton
@OkulovAnton 3 жыл бұрын
Круто! Вам спасибо что смотрите :)
@Rclass
@Rclass 3 жыл бұрын
Спасибо что вы с нами :)
@rusichvil
@rusichvil 2 жыл бұрын
Спасибо за интересное видео! Отдельный плюс за подачу материала!
@Rclass
@Rclass 2 жыл бұрын
Спасибо что с нами :) Стараемся для вас :)
@gekka-group
@gekka-group Жыл бұрын
Очень много видео смотерл по этой теме и читал статьи на хабре, но этот видеоролик самый ценный из всех что я позновал по DI
@Rclass
@Rclass Жыл бұрын
Спасибо за приятный отклик :)
@DIMANVAZ04
@DIMANVAZ04 Жыл бұрын
Вы лучший. Хоть я и джаваскриптизёр.
@Rclass
@Rclass Жыл бұрын
Спасибо! Джавскриптизёр - это надо запомнить. Все мы нет-нет да и джаваскриптизёры.
@Dethrockerbass
@Dethrockerbass Жыл бұрын
Не знаю, как я сюда попал, но теперь понял, как работает (внезапно) спринг. Спасибо!
@Rclass
@Rclass Жыл бұрын
Всегда пожалуйста :)
@user-kq3oo1dx4v
@user-kq3oo1dx4v 10 ай бұрын
Отлично, весело, и просто! Маладец!!!!
@Rclass
@Rclass 10 ай бұрын
Стараемся для вас :)
@user-ok8dp3mt1w
@user-ok8dp3mt1w 5 ай бұрын
Очень круто розжевал. Иногда автор затачивает видео под какой-то конкретный язык что на мое мнение не является правильным так как язык это просто инструмент. В этом видео все будет понятно в не зависимости от языка программирования. Спасибо)
@Rclass
@Rclass 5 ай бұрын
Именно этого и хотелось добиться, спасибо :)
@ProRezak
@ProRezak 3 жыл бұрын
Давно следую DI, но только теперь все стало ясно от и до. Спасибо
@Rclass
@Rclass 3 жыл бұрын
Спасибо, мы старались :)
@user-si4qz6ps9o
@user-si4qz6ps9o 4 ай бұрын
ведущий позитивный, класс)
@Rclass
@Rclass 4 ай бұрын
Спасибо, мы стараемся)
@twentxx
@twentxx Жыл бұрын
Докладчик топ 🔝👍 Жги ещё 😅
@Rclass
@Rclass Жыл бұрын
Спасибо, мы старались)
@kudrvet
@kudrvet 3 жыл бұрын
Классный контент! Разжевано и с примерами ! Продолжайте в том же духе)
@Rclass
@Rclass 3 жыл бұрын
Спасибо, мы старались :)
@varvarskaya
@varvarskaya 3 жыл бұрын
Спасибо как всегда🙏🙏 Такая инфа полезная ещё и бесплатно!!
@Rclass
@Rclass 3 жыл бұрын
Спасибо, мы старались :)
@user-mr9by3jv8t
@user-mr9by3jv8t Жыл бұрын
Лучшее объяснение!
@Rclass
@Rclass Жыл бұрын
Спасибо!
@web_kub
@web_kub 3 жыл бұрын
Супер, спасибо! Все стало ясно!
@Rclass
@Rclass 3 жыл бұрын
Спасибо, мы старались :)
@user-bv8tl7mh9j
@user-bv8tl7mh9j 3 жыл бұрын
Лайк за примеры👍 Понять получилось быстрее в отличие от чтения документации
@AlexKhaizeman
@AlexKhaizeman 3 жыл бұрын
Поэтому и пришлось снять... Я прочитала документацию и отправила мужика-на-фоне-ковра :(
@Rclass
@Rclass 3 жыл бұрын
А как же лайк за мемасы(
@fazleev
@fazleev 3 жыл бұрын
Великолепное объяснение
@Rclass
@Rclass 3 жыл бұрын
Спасибо, мы старались :)
@rvkrasyl
@rvkrasyl 2 жыл бұрын
Крута подача матеріалу, дуже дякую за відео
@Rclass
@Rclass Жыл бұрын
будь ласка!
@mohamednabil9509
@mohamednabil9509 Жыл бұрын
Great explanation
@Rclass
@Rclass Жыл бұрын
Thx!
@saharaprotocol
@saharaprotocol 10 ай бұрын
Спасибо мужик.
@Rclass
@Rclass 10 ай бұрын
Для вас стараемся)
@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 :)
@AlexKhaizeman
@AlexKhaizeman 3 жыл бұрын
Лайк за мемасы =)
@underpershin
@underpershin Жыл бұрын
Отличное виде, спасибо!!!❤
@Rclass
@Rclass Жыл бұрын
Стараемся для вас :)
@winstonwolf2981
@winstonwolf2981 2 жыл бұрын
Отличное объяснение, спасибо
@Rclass
@Rclass 2 жыл бұрын
Спасибо, для вас стараемся :)
@Mr43046721
@Mr43046721 2 жыл бұрын
Очень крутой рассказчик))
@Rclass
@Rclass 2 жыл бұрын
Спасибо, очень приятно ^_^
@username739
@username739 2 жыл бұрын
Подписка однозначно)
@Rclass
@Rclass 2 жыл бұрын
Спасибо, мы старались :)
@jlvby
@jlvby 4 ай бұрын
У Зандстры в книге есть рекурсивный DI-контейнер
@Rclass
@Rclass 4 ай бұрын
🚀
@nkf-v
@nkf-v 2 жыл бұрын
Кайфовая презентация
@Rclass
@Rclass 2 жыл бұрын
Спасибо, мы старались :)
@kavabanger88
@kavabanger88 10 ай бұрын
Так ДИ это тот же сервис локатор, просто механизм этот сам подставляет компоненты куда надо а не мы ручками?
@Rclass
@Rclass 10 ай бұрын
В этом и есть их различие)
@alexanderstepin
@alexanderstepin Жыл бұрын
А в чем отличие service locator от паттерна реестр(registry)?
@Rclass
@Rclass Жыл бұрын
По сути ни в чем :)
@wickedtorpedo75
@wickedtorpedo75 5 ай бұрын
хочется чтобы учитель был моим тимлидом в проекте
@Rclass
@Rclass 5 ай бұрын
Спасибо, стараемся :)
@andreysvitlov7807
@andreysvitlov7807 3 жыл бұрын
а какая будет структура классов и код если надо отправить и/или по email и telegram в зависимости от настроек пользователя ? и не на email указаный при инициализации а на email пользователя ?
@Rclass
@Rclass 3 жыл бұрын
В каждом отдельном случае надо рассматривать ситуацию отдельно :)
@websoda
@websoda 3 жыл бұрын
привет с ютуба
@OkulovAnton
@OkulovAnton 3 жыл бұрын
Привет, Саня!
@Rclass
@Rclass 3 жыл бұрын
Привет! 👋
@alexandrmakovkin7364
@alexandrmakovkin7364 2 жыл бұрын
классно объяснил. было бы не плохо основные паттерны программирования послушать
@Rclass
@Rclass 2 жыл бұрын
Не первый раз уже получаю такие запросы, можно попробовать
@alexandrmakovkin7364
@alexandrmakovkin7364 2 жыл бұрын
@@Rclass спасибо. с DI получилось отлично.
@SemyonF89
@SemyonF89 9 ай бұрын
Вот с таким тимЛидом можно работать!
@Rclass
@Rclass 9 ай бұрын
Ну так мы и работаем :) И очень довольны :)
@SemyonF89
@SemyonF89 9 ай бұрын
@@Rclass Везёт :D
@DIEsel27031992
@DIEsel27031992 2 жыл бұрын
Есть ли способ как-то отлавливать ошибки регистрации реализаций для интерфейсов в контейнере (например, отсутствие реализации для какого-то интерфейса, которую забыли указать) во время компиляции, а не в рантайме?
@Rclass
@Rclass 2 жыл бұрын
Если я ничего не путаю, то Symfony при компиляции кеша так и делает. Но это все равно по большому счету рантайм. Как в C# / Java не подскажу( Скорее зависит от конкретной реализации.
@DIEsel27031992
@DIEsel27031992 2 жыл бұрын
@@Rclass про Delphi можно не спрашивать? 😀
@ardixq
@ardixq 2 жыл бұрын
норм обьясняешь
@Rclass
@Rclass 2 жыл бұрын
Спасибо, мы старались :)
@litvinenkow
@litvinenkow Жыл бұрын
laravel конечно круче это всё делает и думать не надо, но в symfony немножко всё-таки думать придётся)
@Rclass
@Rclass Жыл бұрын
Рано или поздно надо будет думать) И вот лучше рано, как показывает практика :)
@user-yr9rq7we2n
@user-yr9rq7we2n 11 ай бұрын
Факт это что?
@Rclass
@Rclass 11 ай бұрын
Это наш старенький и уже давно заброшенный фреймворк)
Базы данных. ClickHouse. Колоночные СУБД
53:29
Пакетные менеджеры, composer, lock-файлы
17:21
Box jumping challenge, who stepped on the trap? #FunnyFamily #PartyGames
00:31
Family Games Media
Рет қаралды 31 МЛН
Они так быстро убрались!
01:00
Аришнев
Рет қаралды 3 МЛН
👨‍🔧📐
00:43
Kan Andrey
Рет қаралды 10 МЛН
Базы данных. MySQL. Транзакции
41:32
R class Tech
Рет қаралды 35 М.
Dependency Injection & Inversion of Control
11:00
Ryan Schachte
Рет қаралды 195 М.
Базы данных. MySQL. Индексы
31:10
R class Tech
Рет қаралды 66 М.
№103: Dependency Injection в JavaScript
26:01
devschacht
Рет қаралды 15 М.
Doctrine ORM: Entity, Identity Map, Unit Of Work
47:29
R class Tech
Рет қаралды 3,5 М.
Box jumping challenge, who stepped on the trap? #FunnyFamily #PartyGames
00:31
Family Games Media
Рет қаралды 31 МЛН