Press "Enter" to skip to content

Dependency Injection basics- Fun Fun Function


хорошее утро в понедельник, я mpj, и вы
Сегодня мы наблюдаем забавную функцию
собирается ознакомиться с основами
инъекции зависимостей мы собираемся
расскажите о том, какая инъекция зависимостей
почему он существует, я собираюсь показать вам, как
использовать его, и, наконец, я собираюсь поговорить
о некоторых предостережениях с ним, так что
зависимой инъекции, позвольте мне показать вам
некоторый код давайте представим себе, что мы
есть функция, называемая get animal it
получает идентификатор, который он возвращает, обещает, как
из выписки, если вы не знаете, что
выбирает новую функцию, встроенную в
современные браузеры, чтобы сделать HTTP- вызов, я не
собираюсь пойти, как это работает, но там
отличные видео на Google
канал разработчиков, который вы можете проверить
здесь это не очень важно в
чтобы понять это видео, но в
случае , если вы были сбиты с толку ответ от
этот воображаемый API — это Джейсон, поэтому нам нужно
разобрать
и животные, вероятно, в этом
ответ где-то, возможно, допустим
что в некоторых
массив результатов, как первый элемент в
массив результатов просто представьте, что так
это функция, которая использует выборку
API для получения журнала данных
службы, и это частично называется Дастин
без него и извлекает данные
то, что вы видите здесь на экране, не используется
зависимость выборки здесь инъекции
глобально доступны повсюду
в браузере выборка на самом деле просто
на объекте окна, поэтому, если мы
хотел быть очень конкретным в отношении того, что
что мы будем вводить выборку точек окна
например, поскольку окно является глобальной переменной
что у вас всегда есть доступ, когда вы
работают в браузере для хорошего и
зло вы должны показать вам, что я не
Я собираюсь открыть браузер и
просто сделайте ссылку, которую видите, если я просто растяну
Вот
Увидимся , да, эта выборка — это
функция, которую они декодируют, и дугу, если
вы делаете окно, чтобы увидеть, что это
всегда там глобально, если это
инъекции использование зависимость функции его
вероятно, будет выглядеть примерно так
О, неуклюжие, я знаю
так что теперь у животных есть зависимость
впрыскивается, это становится функцией
путь к нему, называемый fetch, который является
функция рассчитывает обработать ваш полет
вы знаете идею выборки, поэтому, когда вы вызываете
он получает любые родинки, которые вы должны пройти в
функции и идентификатора, а затем вы делаете некоторые
рендеринг, я думаю
[Музыка]
это ужасный код, но вы получаете
указать это в корне все , что
инъекции зависимости нет
библиотеки нужны или нет рамок
так что это фрагмент кода, который ему нужен
некоторые зависимости в этом случае извлекают и
вместо этого кода будет разрешено
вы знаете, что вызвали эту зависимость
или получить доступ к нему, где бы
зависимость дается код из
снаружи, как мы, я мог бы здесь и
теперь вы можете спросить себя, почему
этот дополнительный шаг здесь почему мы почему не
мы передаем это, это кажется просто
дополнительная работа, и нет явных преимуществ
хорошо вы могли бы утверждать, что зависимость
инъекция может быть более ясной
давайте, например, сказать, что нам понравилось
здесь есть четыре разных не только
но и некоторые базы данных и размытие
способность, которую мы зависим от инъекции, может
помогите разоблачить эту сложность, а не
если он был вызван только функцией
тот факт, что животные тоже
многих зависимостей и
место будет более скрыто , что является
небольшое преимущество инъекций зависимостей
но настоящая причина, по которой мы это делаем, — это
сделать код проверяемым я собираюсь
прокомментируйте это здесь, тюльпан, и мы
собираюсь написать единичный тест для мертвых
животные
сохранить позвольте мне запустить termokontroller
mocha no npm install ‘g проснулся , если это
запутался, вы новичок в JavaScript
mocha — тестовый бегун для javascript
и я установил его здесь, используя узел
менеджер пакетов, который является основной
менеджер пакетов установлен глобально здесь
NPM связан с узлом, который мы
собирается использовать в бите , который да
Среда JavaScript для
командной строки для процветания, которую я использую
узла версии 7.4 вам не нужно
понять все это, чтобы понять
но я просто говорю вам, чтобы
вы знаете, что происходит, поэтому позвольте мне бежать
мокка и право без фокуса
ибо насколько подходит тест, я думаю, что я
должен был просто указать файл, чтобы
не мог пойти в LOL bobba bobba desktop
и я собираюсь запустить dude dot, и я
вызов этого эпизода файла J s не
опишите, что это не определено всегда, потому что
Я пытаюсь запустить его с низким, но мы
хотите работать с мокко тест
бегун, и поэтому Джейн да ок, круто сейчас
пробеги заставляют животных работать в основном случае
эти вещи описаны, и это то, что вы
что он не был определен, если бы мы были
запускать его в среде заметок ванили
и это потому, что мокко
окружающая среда магически вызывает их в
глобальное государство, поэтому мы имеем
доступ к ним, что бы мы ни думали
что эта инъекция не была введена
Я собираюсь удалить эту штуку здесь и
мы хотим нажать, чтобы животные были похожи друг на друга
два три — первое, что мы хотим
чтобы проверить, что функции животных
на самом деле холодное растяжение здесь похоже на
это мне нравится, он использует идентификатор, который мы
проходят в и дает ему , как магазины его в
этот новый конечный пункт здесь и тут
холодная выборка с этим, что мы хотим
для проверки, но теперь у нас есть проблема
Я посмотрю, я думаю, мы могли бы это увидеть, если бы я
просто запустите тест, да, хорошо
выборка не определена, мы запускаем этот
в узле, который является средой CLI в
браузером это будет определено нами
захотите заменить сюда свои собственные
подделка или макет или прекращение дисперсии
принесите нам, как только вы это сделаете
выберите здесь, мы хотим пересечь это
называть , но проблема в том , что , кажется , получают
сами животные просто захватывают это
из глобального объекта окна снова
помните, что именно это и есть то, что
на самом деле происходит мы или тест
здесь вроде он не имеет никакого контроля
над тем, что он не имеет права голоса , как
получить животных, вызвавших тест
не имеет какой — либо способ попадания в
тело животного прибудет так сказать его
не может проверить, что происходит
внутри него, и это главная причина
почему инъекция зависимости используется для
решить эту проблему, поэтому позвольте мне представить
зависимость впрыска назад, и теперь мы
постепенно попадая в хау
инъекции зависимостей, поэтому теперь получаем животных
требует, чтобы метод выборки принимался в
поэтому давайте создадим нашу фальшивую выборку
и теперь мы хотим утверждать, что get
животные звонят с этим
URI, поэтому я собираюсь нарисовать это в
и вот так это URI, что мы
хотите позвонить, и мы можем проверить это с помощью
утверждая, что Эрл равен этому
давайте попробуем запустить, что мы видим, что
третий не определен, и это потому, что
третий — это нечто, что встроено в
no jab Я просто хочу, чтобы
третья требует здесь простой
библиотека утверждения, встроенная в джаз и
беспокоиться об этом, о чем мы получаем ошибку
потому что в строке 5 здесь он не может читать
свойство then undefined
это потому, что сюда
действительно возвращая обещание или
фальшивая версия здесь просто возвращает вас
все ничего
поэтому нам нужно подделать обещание, которое никогда
возвращается Я собираюсь вернуть обещание и
то мы просто никогда не будем называть этот результат для
момент, и это сделает работу не
потому что я не звоню тебе, давай бежим
что снова круто это работает, если вы
незнакомы, если вы не знакомы с
Обещает, что у меня есть эпизод по этому поводу
если вы разработчик Java, то они
в основном такие же, как фьючерсы, поэтому давайте
пройдем то, что мы сделали здесь, мы
ввел здесь здесь аргумент в качестве аргумента
если мы этого не сделали
получить ваш вызов или ссылку на выборку
это будет то же самое, что ссылки
окно для извлечения, это то, что происходит и
если мы это сделаем, то нет способа
или получить животных здесь, чтобы создать подделку
получать метод и и проверить все , что
идет к этому, а также подделывает вывод
мы имеем здесь этот аргумент, который мы делаем
ожидать выборки функции , а затем мы
создать эту фальшивую функцию лучшей выборки
здесь в тесте и поддельной ставке
Функция работает так же, как реальная выборка
и для этого требуется стрелка, а затем
он утверждает, что граф равен тому, что мы
ожидайте, что это будет, а затем просто сделать
что тест не сломается, потому что
нас интересуют только призывы, но
что он вызывает и выбирает с правильным
вы действительно можете переименовать тест
к тому, что он называет год, называемый fetch
с правильным URI, который я открываю, делайте это, когда
Я блок установки на способ , которым я часто
ну я часто не совсем уверен , что
что это такое, что я тестирую, поэтому часто
получить правильное дерьмо, как должно быть
преподавал, например, для первого теста
просто для того, чтобы заставить себя идти, а затем
обычно цель испытания
кристаллизуется, как это было здесь
я снова проведу тест с новым
описание, которое он вызывает, с помощью
исправьте свой глаз, этот тест в основном
заботятся о том, чтобы подделка
fetch холодно, но если вы видите
наша поддельная выборка также может возвращать значения так
дайте мне позволить мне написать еще один тест
дать вам представление о том, как это работает, когда
мы подделываем выходы из зависимостей как
нужная часть задает ответ выборки
правильно теперь позвольте мне удалить это и
покажите , как я представлял себе нашу воображаемую
животное форма API — животное
ответ, потому что вы видите здесь я
просто сделал это, у него есть результаты
свойства, и
массив всех животных, которые он думает
что они выглядят так, как вы знаете
начинается, может быть, у него есть тип для робота
робот-робот- дракон или что- то еще
просто используя наши фантазии здесь, но это
это наш мнимый ответ API API
хорошо, я собираюсь свернуть этот тест для
теперь и позвольте мне сказать, что хорошо давайте
создайте новую фальшивую выборку, и мы хотим
это, чтобы вернуть обещание, потому что
fetch API — это день обеда, и мы хотим
верните обещание, что с душой в
объект объекта ответа, который имеет
остановлено, что имеет смежный метод и
что метод Джейсона — это наша воля, когда мы
позвоните нам, мы хотим, чтобы мы разрешили сейчас
мы хотели вернуться еще обещание , что
решает данные здесь и
Итеративное обетование Точка R продается не
не
и это должно в основном привести к
это я собираюсь скопировать
это наши поддельные данные, о мой бог
отступать так сильно, если параметры
урод, вы сжимаете значок I в
верхний правый угол, чтобы проверить мое видео
на этом я обещаю, что обещания очень
полезно для вас, независимо от того, что
язык программирования , из которого вы
их и так много знаний
что выйдет из их изучения
приводит к финансированию, которое ведет к монадам и
все так много хорошего, но в любом случае мы
здесь, и мы
собирается передать его в наших животных
и мы собираемся это исправить
торт принести и мы собираемся 1 2 3 4 5
и мы ожидаем, что он вернет обещание
с и с Солом, и мы ожидаем, что
дает название T равный пушистый род здорово
позвольте мне просто запустить это и перерыв на корме, который
не следует , что не следует поручить это
важная методика единичного тестирования
первое, что вы хотите сделать, это получить
прочитайте, убедитесь, что они ломаются, когда они
должны сломаться, чтобы вы знали, что
тест тестирует что-то, так как это
это синхронный тест, который
позже мы должны использовать сделанное
так что, когда мы закончим с
тест, который мы называем, мы называем выполненным, я
собирается спуститься туда сразу хорошо видеть
снова запустите его, это зеленый, я не
действительно ожидаю, но, может быть, я на самом деле
написал код, давайте давайте
убедитесь, что, просто сломав код, да
о, это действительно да, но это ломается
фантастический его следующий, так что я просто
собираюсь вернуть это и ОН
запустить его снова обкатки снова зеленый
снова запустить зеленый, это один из больших
преимущества модульного тестирования, это похоже на вас
может проводить ваш тест снова и снова
догадайтесь и как удар дофамина к вашему
мозг каждый раз действительно здорово, пойдем
через это, что мы сделали, у нас есть это
но функция животных
во втором тесте здесь, и мы
проходя в какой-то нашей поддельной выборке, что мы
создайте здесь и удостоверение личности, а затем мы
убедитесь , что это дает обещание, что
решает результат, а затем мы утверждаем
что этот результат имеет имя , которое
fluffykins
мы по существу проверяем, что если результат
вот эта вот эта вещь, что это
совершенно ненужно для теста I
просто добавила его, чтобы повеселиться внутри
поддельный выбор здесь мы в основном
просто делая поддельную версию этого
здесь также обратите внимание на то, что я в
верхний тест или в первом тесте мы были
касающийся URI
поскольку мы проверяем URI, мы не беспокоимся
сделайте это в этой поддельной выборке здесь, потому что
ты знаешь, что мы просто обеспокоены
с прилагаемой политикой исследований
правильно , поэтому мы не писать много
ненужный тестовый код на самом деле мы не
нам даже не нужен Граф там
потому что мы никогда не используем его технически мы
даже не нужно ничего пропускать здесь
потому что тест не тестирует это, но
Обычно я хотел бы оставить веские аргументы
как это, вместо того, чтобы удалять их
потому что мы можем добавить проверки чеков позже
также испытания или вид документации, поэтому
это просто приятно, что вызовы выглядят
несколько реальных вызовов, и это
в основном то , что инъекции зависимости является
Я поставил это немного кода онлайн
есть ссылка в эпизоде
описание, которое было тем, почему и как
Я просто хочу немного поговорить
предостережений с инъекцией зависимости
главная раздражающая вещь с зависимостью
инъекции является то , что она требует от вас
перестройте свое приложение, чтобы сделать это
и это будет эмоционально работать
многие люди просто чувствуют себя немного
бит, который вам нужно
реструктурируйте приложение только для
отвратительный и инъекция Теннесси
требует совсем немного структурирования
особенно когда вы начинаете иметь деньги
слоев в вашем приложении есть
абсолютно другие альтернативные способы
решение проблемы зависимостей
внутри функций, которые нам нужно подделать
входы и вывод этих
как-то, но я думаю, что
инъекции зависимостей как шаблон для
дело в этом удивительно прямо
вперед это достаточно легко
поймите , не знаете ли вы, идите
использовать некоторую систему инъекций зависимостей
и библиотеки не попадают в ловушку
или встраивание инъекций
рамки и shite просто вставляют ваши
напрямую, и это делает ваш
приложение очень легко тестируется, и это
применимы практически во всех языках
там очень хорошо документировано
шаблон очень неважно, и он работает
это мы говорили о зависимости
Основы инъекционные мы говорили о
что это инъекции зависимостей в
кода вместо простого кода
захватывая любые зависимости, которые они чувствуют
как мы говорили о том, почему это
имеет некоторую структурную выгоду, но
это в основном облегчить модульный тест
ваш код, а затем мы прошли и
посмотрел, как это сделать на практике и
мы говорили о некоторых предостережениях с ним
что это требует некоторой реструктуризации
вашего кода, но он имеет
преимущество быть довольно простым
прямо, и вы знаете, просто работает
и это у вас есть у вас есть
смотрел эпизод веселой веселой функции I
освобождаю меня каждое утро понедельника всегда
сотни раз по Гринвичу не пропустите это
эпизод, потому что это может быть удивительно, если
вы забываете, что можете включить
маленький предупреждающий звонок рядом с
кнопку подписки в приложении YouTube или
вы можете следить за мной на твиттере в MP Jamie
если вам понравился этот эпизод, вам может понравиться
состав Одома на этой неделе
наследование или вам может понравиться это видео
которые вы будете изучать
записали для вас, посмотрев на
эта удивительная футболка покрывает Шредингера
I и mgj до следующего утра в понедельник
Спасибо
Please follow and like us:

Be First to Comment

Добавить комментарий