Пікірлер
@АнтонЛебедев-н1н
@АнтонЛебедев-н1н Ай бұрын
Нихуя не понял, ладно
@DmitriiBaranov-ib3kf
@DmitriiBaranov-ib3kf 3 ай бұрын
Опять реакт.. Что же все на этот оверхайп ведутся. Одна из компаний, в которых я работал, запустила проект на реакте, потому как, якобы, проще на него найти разработчиков. И народ идёт реакт учить, потрму что с ним больше вакансий. Между тем, реакт объективно (как технология) много хуже вью. Да, с ним возможно создавать сайты, но куда сложнее и с намного худшей производительностью, с большим числом багов. Ручное управление реактивными зависимостями - главный источник багов. Второй источник - компонент как функция, выполняющаяся при каждом обновлении компонента. Легче лёгкого привнести бесконечные циклы. По производительности - при каждом проходе аллоцируем тонны массивов (для зависимостей), каждый вызов useState при обновлении компонента аллоцирует под капотом ещё один массив (кортеж). Каждый коллбэк - функция. Функции в джаваскрипте - объекты, и стало быть - дополнительные аллокации при каждой перерисовке компонента. Например, при вводе текста в инпут. По DX - нет двустороннего биндинга. Для циклов - callback hell. Условия - те ещё извращения. Попытка запихнуть и логику, и шаблон, и стили в джаваскрипт, закончилась плачевно. Имеем PHP-подобный JSX (с htmlFor и className вместо for и class), тонны кривого CSS-in-JS. Про сторы вроде редакса я вообще молчу: мантра об иммутабельности - пляска бойлерплейта на костях сборщика мусора. Вью, с другой стороны, имеет идеальную автоматическую реактивность. Не аллоцирует лишнего. Легко управляется. Темплейт - валидный HTML, удобные директивы v-if, v-for, v-model (для двустороннего биндинга), оптимизация на этапе компиляции. Идеальный стор Pinia, простой роутер, идеальные provide и inject. Вью может всё, что может реакт, но проще, быстрее и лучше. А уж если взять Nuxt - так жизнь и вовсе мёдом покажется. Реакт давно пора оставить на свалке истории. Он был хорош только на фоне ангуляра и jQuery.
@andrew2340
@andrew2340 4 ай бұрын
уточнение) kzbin.info/www/bejne/Z52pfYOcnNuCgdU - это не фреймоворк это либа. а вот next - это framework
@zeOnni
@zeOnni 6 ай бұрын
Я обычно прошу написать функцию сложения двух чисел без DI
@ix3909
@ix3909 7 ай бұрын
Офигеть, принцип инверсии зависимостей и композицию выделили аж в отдельный паттерн 😂
@How_is-x5b
@How_is-x5b 7 ай бұрын
Когда никуда не берут, то ваще всё равно куда, лишь бы денег платили. А у кого опыта нет, то им надо хвататься за всё что предложут, ибо опыт им нужен в первую очередь.
@КириллЧе-я5ы
@КириллЧе-я5ы 7 ай бұрын
Интересно, а если мне нужно передать объект, который имплементируется неск интерфейсами?..
@GraMuzgobChick
@GraMuzgobChick 8 ай бұрын
Вы случайно не играли в бдо ? Очень похожий голос просто
@Anik_666
@Anik_666 8 ай бұрын
Почав з залежностей, закінчив інверсією тих же залежностей( не сказавши про це), потім на di контейнер переліз)))) ляяяяя жесть
@SHZ_Alex
@SHZ_Alex 8 ай бұрын
Как бывший душный продакт по терминологии "bodyShop" - "OutStaff", "Софт на заказ" - "OutSource") Все остальное в видосе топ и по делу, спасибо автору))
@SergeyDovbenko
@SergeyDovbenko 10 ай бұрын
Ещё один положительный момент а ДИ это возможность поумничать перед кандидатом😂
@КанцеровВалентинСергеевич
@КанцеровВалентинСергеевич Жыл бұрын
кратко и понятно везде бы так
@КанцеровВалентинСергеевич
@КанцеровВалентинСергеевич Жыл бұрын
чел, угорает, МНОГО РАЗЖЕВАННОЙ информация
@SailorProJect
@SailorProJect Жыл бұрын
Зашел сюда чтоб написать Angular.
@vladead8
@vladead8 Жыл бұрын
Годно, спасибо
@SinnerWar
@SinnerWar Жыл бұрын
За 4 минуты вся база, а то зае... своими книгами по 400+ страниц с кучей воды, на такие простые темы не очень как по мне важные
@ser9ga592
@ser9ga592 Жыл бұрын
D в SOLID - это Dependensy Inversion. А вы назвали и объяснили dependency injection. Темы немного пересекающиеся, но всё таки разные
@КимЧенОрк
@КимЧенОрк Жыл бұрын
👀👀👀👀 Где SOLID автором упомянут?
@gennadyga2257
@gennadyga2257 Жыл бұрын
Это лучшее, что мог найти, простыми словами, порт для устройства. Круто Спасибо! Побольше б таких видео.
@kuanyshkudaibergenov7041
@kuanyshkudaibergenov7041 Жыл бұрын
классное объяснение
@teawizzard
@teawizzard Жыл бұрын
Вот так надо Внедрение зависимости (англ. Dependency injection, DI) - процесс предоставления внешней зависимости программному компоненту. Является специфичной формой «инверсии управления» (англ. Inversion of control, IoC), когда она применяется к управлению зависимостями. В полном соответствии с принципом единственной ответственности объект отдаёт заботу о построении требуемых ему зависимостей внешнему, специально предназначенному для этого общему механизму[1].
@teawizzard
@teawizzard Жыл бұрын
Вначале я не понял, а потом я начал тупо угорать 😂 Потом дежавю
@asmr_codster
@asmr_codster Жыл бұрын
А не лучше Unity было выбрать?
@Wolity
@Wolity 5 ай бұрын
💀✋
@minimalstory
@minimalstory Жыл бұрын
2 года прошло, а до сих пор лучшее объяснение, советую всем нашим джунам)
@jarjarbinks6015
@jarjarbinks6015 Жыл бұрын
госпади, здоровье тебе и твоим родственникам, это просто самое божественное, краткое и емкое объяснение DI.
@zakiro4277
@zakiro4277 Жыл бұрын
Спасибо за опыт)
@pawsdev
@pawsdev Жыл бұрын
Идеально! столько болтовни вокруг этой херни, а туту хрясь пара скринов и все сразу ясно)) Для Java это тоже подходит
@liyaguliaieva1111
@liyaguliaieva1111 Жыл бұрын
Это просто гениальное объяснение!!! Спасибо 🙏👏👏👏👏
@toxicknight3079
@toxicknight3079 Жыл бұрын
Запили такой же видосик по IoC и IoC-контейнерам, ради христа)
@excellent18rus
@excellent18rus Жыл бұрын
а я так ваще ниче не понял)))
@dzmitrykuhukou4480
@dzmitrykuhukou4480 Жыл бұрын
хрена себе комменты, видимо, тут все и так в курсе, как это работает, т.к. если бы я был не в курсе - хер бы что было понятно....
@TheKirk1989
@TheKirk1989 Жыл бұрын
хмм, не знаю почему, быть может просто настало время, но именно на этом ролике я начал более менее понимать, зачем нужен этот паттерн проектирования
@SafargalinVladislavbimka89
@SafargalinVladislavbimka89 Жыл бұрын
Только что узнал о существовании этой фичи и вроде, как круто, не нужно создавать экземпляры классов. Нооо не понимаю, как это применить с MVVM, биндинги отлично отделяют вьюшку от viewmodel и делают их не зависимыми друг от друга, как я понял эта фича помогает сделатт viewmodel более независимой от самой model. Но тогда, как мне свойства вьюмодели привязать к данным, я же не могу в классе вьюмодели делать sql запросы, напрямую привязывать тоже, в конструкторе вьюмодел, я не могу передавать аргументы, возникнет ошибка между вьюшкой и самой вьюмоделью, наследовать я тоже не могу, ведь вьюмодел уже наследуется от BindableBase да и смысла нету реализовывать это во вьюмодел, ведь суть и заключается, чтобы отделить ее от модели. Допустим есть данные в sql и модель этих данных, я создам интерфейс и класс который будет вытаскивать данные из БД, а теперь как свойства вьюмодел привязать к этим данным? Не совсем понимаю что такое Response в примере, просто класс который реализует этот интерфейс? Извиняюсь если задаю глупые вопросы, не так давно начал изучать паттерны очень сложно самому находить понятную простым смертным информацию(. Пукан подгорел пока пытался найти что-то по MVVM и внедрению зависимостей, какие-то контейнеры, какие-то хостинги, службы, сервисы...
@voidplusplusru
@voidplusplusru Жыл бұрын
Не уверен, что полностью понял, что вы пытаетесь сделать. Полагаю, что в вашем случае нужно внедрять зависимость (некий сервис, который вытаскивает данные из БД) во вьюмодел. Тут есть пример community.devexpress.com/blogs/wpf/archive/2022/02/07/dependency-injection-in-a-wpf-mvvm-application.aspx В моем примере Response - это просто модель, которую возвращает метод, отношения к DI не имеет.
@SafargalinVladislavbimka89
@SafargalinVladislavbimka89 Жыл бұрын
@@voidplusplusru то что я искал, спасибо огромное !
@speedrages
@speedrages Жыл бұрын
Почему ты не снимаешь другие видео по программированию. С таким объяснением и примерами тебе цены нет💪
@sortadorgin9327
@sortadorgin9327 Жыл бұрын
вельми дякую) дуже лаконічне поясненя
@eu-rn1xb
@eu-rn1xb Жыл бұрын
Остался вопрос по контейнеру. Должна быть возможность зарегистрированные зависимости локализовать, верно? Потому что не везде мне нужно подставлять так, как я хочу в конкретном месте. В одном месте я такую зависимость регистрирую, в другом - другую, и они друг другу противоречат... Например, вот здесь 4:37 меня устраивает связь DbContext. А вот в другом месте я хочу MyDbContext
@voidplusplusru
@voidplusplusru Жыл бұрын
Это можно решить разными способами. Зависит от того, что позволяет делать конкретный IoC. В некоторых случаях можно именовать каждую регистрацию. Я бы в таком случае просто сделал интерфейс IMyDbContext, который наследует от IDbContext и MyDbContext будет его реализовывать. И там, где нужен MyDbContext указываем интерфейс IMyDbContext.
@boycovclub
@boycovclub Жыл бұрын
Дотнетчик учит людей Фронтенд фреймворкам)
@АлексейКомлев-т4с
@АлексейКомлев-т4с Жыл бұрын
Перехожу с. React на Vue
@АлексейКомлев-т4с
@АлексейКомлев-т4с Жыл бұрын
Я тоже заметил что на react много шаблонного кода
@smookkee1
@smookkee1 Жыл бұрын
Di - это агрегация, так?
@ko22012
@ko22012 2 жыл бұрын
Функциональная компоненты используют новый подход к рендеру, прерываемости, сила как раз в хуках. Да и код на функциональных компонентах проще.
@of_youtube
@of_youtube 2 жыл бұрын
Чел харош
@Revenant520
@Revenant520 2 жыл бұрын
На данный момент, это лучшее объяснение DI, которое я встречал!
@apdgslfhsodbna
@apdgslfhsodbna 2 жыл бұрын
Есть достаточно удачная формулировка: "класс должен зависеть от абстракции, а не от конкретной реализации", и далее можно рассказать про агрегацию в виде передачи параметра типа интерфейса в конструктор класса и что этот подход является эволюцией фабричного метода 🙂
@apdgslfhsodbna
@apdgslfhsodbna Жыл бұрын
@@mamikonpapikyan6120 , Ioc - идея, dependency inversion - принцип, dependency injection - реализация
@kingslayer7679
@kingslayer7679 Жыл бұрын
@@apdgslfhsodbna Вы путаете два понятия близкие к себе но всё же разные.
@syuo5051
@syuo5051 2 жыл бұрын
Спасибо, братик! Я постоянно думаю, какой лучше, что выбрать, первое или второе, второе или третье, первое или третье. Пролил немного света на тему выбора!
@ара_вася
@ара_вася Жыл бұрын
атдуши душевно
@azabroflovski
@azabroflovski 2 жыл бұрын
Ребята, не слушайте его, попробуйте оба, выберите тот который вам нравится, или лучше просто взять Vue и жить хорошо =)
@hTeWlFo
@hTeWlFo 2 жыл бұрын
Это очень круто!
@ЕкатеринаБирюкова-н7и
@ЕкатеринаБирюкова-н7и 2 жыл бұрын
Спасибо за видео. Добавлю свои 3 копейки. В компаниях второго типа много зависит от внутренней организации процесса разработки. Это отличный вариант, если сработанная команда переходит с проекта на проект и/или у специалиста есть возможность самому мигрировать с проекта на проект по истечение адекватного времени: полгода там поработал, полгода - сям. Если менеджмент занимается постоянной переброской ресурсов с проекта на проект в режиме "2 недели тут, 3 недели там", при этом ещё если и у каждого проекта свой стек, то это ад: глубоких знаний не получишь, но нервы все вымотаешь. И да, если ещё адекватно не налажено взаимодействие с клиентами, то это постоянные разборки "кто виноват?". И гонка сроков.
@wlsh0
@wlsh0 2 жыл бұрын
это библиотека
@dok.8078
@dok.8078 2 жыл бұрын
Тема размазана в ограниченных знаниях автора… читай больше, ServiceLocator не обходи.
@becket4373
@becket4373 2 жыл бұрын
НАрод 2022 что выбрать vue или react ?!
@victor5485
@victor5485 2 жыл бұрын
Angular
@DiabloSat_off
@DiabloSat_off 2 жыл бұрын
vue
@Leks8823
@Leks8823 2 жыл бұрын
Angular более формализован и код объемнее, но строже. TypeScript отлично подходит. React попроще, но лучше читается. Мне функциональные компоненты с хуками нравятся. Классовые проблемные, например, из-за возможного изменения props на этапе рендеринга. Vue быстрее разработка, но мудренее код. TS не так хорошо ложится.