Press "Enter" to skip to content

Inversion of Control — Fun Fun Function


хорошее утро в понедельник, я mpj, и вы
наблюдая забавную забавную функцию пару
недели назад я сделал эпизод, где мы
исследованная инъекция зависимости сегодня
видео будет продолжением этого
касающихся инверсии управления на
конец видео о зависимости
инъекции я говорил о некоторых из
оговорки с инъекцией зависимости один из
оговорки, о которых я говорил в этом
видео было хитростью в получении вашего
зависимости от кода, который хочет
эти зависимости, введенные в
контекст более крупного приложения, поскольку он
случается, зритель предоставил нам
фантастический пример
в этом куске кода, спрашивающего, как бороться
с этой проблемой этот код
фантастический пример проблемы, которая
Я говорю о
хорошо, поэтому у Бесселя есть магазин
функции документа, которую мы хотели бы
добавьте модульные тесты, чтобы мы это сделали
вещь, которую можно проверить, прежде чем попасть в
инверсия или управление или что-то вроде
что все же давайте просто почувствуем это
код и что это делает так магазин
документов требуется идентификатор пользователя, который требуется
папке, и он принимает файл
поток у нас нет больше информации
чем этот кусок кода, поэтому я собираюсь
получить этот поток файлов — это что-то
то есть из формы загрузки в
интерфейс и местоположение папки
где мы хотим сохранить файл
и идентификатор пользователя хорошо
пользователей, прошедших проверку подлинности, идентификатор пользователя, который требуется
что и он передает его этому методу
здесь, на объекте DB пользователя, называемом find
один, и он также делает то же самое с
местоположение папки здесь Wow
он передает его, чтобы найти его в папке
DB, так вот, это в основном
выборка базы данных
длина колчана идентификатора пользователя и
местоположение фолио, которое оно использует, обещанное вообще
ждать, пока оба из них будут разрешены
и эти два возвращения, которые являются обещаниями
там у меня есть эпизод по обещаниям, если
вы не знакомы с тем, как они работают
в конечном итоге обещал, что все
разрешить фактическому пользователю в
фактическая папка здесь, тогда она продолжается и
проверки с использованием метода записи can на
объект доступа пользователя, если пользователь
разрешено писать в эту папку
пользовательские коннекторы могут записать это решение
в допустимое значение здесь, и если оно
не разрешено, оно отклонит использование
я ошибаюсь, я думаю, что я просто
собираюсь удалить это, потому что это просто
смущает ссылки boom sa HTTP-библиотека для
для выполнения подобных HTTP-ошибок
которые могут быть переданы по цепочке, но это
не имеет значения для этого примера. Я просто
собираюсь сделать это , как исключение это пошло
неправильно, мы идем и почему не быстро
крылья, если пользователю разрешено писать
в этом каталоге он будет продолжать вызов save
здесь, в хранилище файлов, он также проходит
пользователя и папки в качестве аргументов
за исключением , однако есть здесь ошибка
потому что пользователь и папки или не в
область внутри этой функции здесь
поэтому я собираюсь исправить это на самом деле
теперь это правильно охвачено, и у нас есть
доступ к пользователю и папке,
важно для примера как такового, я просто
хотел исправить ошибку в последнем
эпоха
мы продемонстрировали очень простой
пример инъекции Я собираюсь показать это
вам теперь не собираюсь вдаваться в это мы
говорил об этом подробно на последнем
эпизод, но мы этот код здесь дадим
животных он имеет только одну зависимость и
мы вводим, что единственная зависимость и
этот документ этого магазина вполне
немного больше зависимостей, которые он полагается на
много внешнего кода, так что у вас есть
пользовательская БД, у вас есть индивидуальная БД, у вас есть
пользовательский объект доступа, и у вас есть файл
поэтому, если мы будем использовать ту же технику
это эта вещь, подпись
хранить документ, он бы получил
которые он будет смотреть
что-то вроде этого
зависание, и это будет похоже на пользователя
доступа и получить как хранилище файлов, чтобы вы
будет вводить все эти вещи
и когда вы назвали его правильной функцией
как хранить все человеческие, которые вам придется
передать все это, а затем сделать
как идентификатор пользователя, папка для
местоположение, которое вы знаете, а затем передать
фактический поток файлового потока
и давайте представим, что эта вещь
то, что находится внутри вида, как-то выглядит
как они могли себе это представить
что-то вроде реактора или какого-то углового
или что- то вроде того, что
делает вещи , вероятно , сказать , что
теперь содержит форму
вещь должна была нести ответственность за
вводя все эти вещи и
возможно, как вы это делаете
либо вы должны их создать
в этом в
этот контекст здесь, как новый пользовательский БД или
что — то подобное , возможно , и сделать
то же самое с другими вещами, как, но
то вы получите проблему проверки
с видом
поэтому , возможно , вы этого не сделаете , что , возможно ,
вместо этого вы, как вы, начинаете
это как передача всех этих вещей
но это похоже на это.
совершенно неосуществимо, потому что
громоздко даже сейчас с двумя строками
кода и одной зависимости, как просто
представьте себе , как если у вас есть десять из них
и вы должны создавать экземпляр и
передавать каждую отдельную зависимость, которая
используемое чем-нибудь на вашем дереве, это да
и здесь инверсия управления
входит в картину
так что whew не очень хочет быть
со всеми этими вещами
ему нужен способ хранения документов
но он действительно не хочет, чтобы вы хотели
ему хочется иметь хранилище своих документов
для правильного включения батарей
мы имеем дело с этим, чтобы создать это
журнал I фабрика документов хранения документов
и да, поэтому эта функция является фабрикой
функций хранилища, которые он производит
Функция хранения документов и для того , чтобы
делать это, чтобы
зависимости, которые хранят документ
функции требуют от них
там, и что он делает, так это то, что он просто
берет документы в хранилище, которые просто связываются, и мы
не заботится об этой области , поэтому мы
личного для первого аргумента, а затем
у нас просто есть эти ребята, если вы
не знакомы с тем, как работает связка
можете проверить это видео, которое я сделал
тема так, что связывает здесь
заключается в том, что он собирается создать новый
функция создает и возвращает новую
функция, связавшая первый
аргументы здесь для любых значений мы
перейдут сюда в документ магазина
Фабрика, я вернусь к этому, но я
просто покажу вам, как это делается
он используется
чтобы дать некоторый контекст, давайте представим себе
что у нас есть наша главная голубь GA здесь
вещь, которая запускает весь ваш
приложение, которое создает
вид здесь, так что это похоже на просмотр и
представление хочет что-то одно вид
один магазин хранит документы только один раз в магазине
документов он не хочет, чтобы все эти
вещи, которые он не хочет беспокоить
с этим там, так что вы видите здесь, что
теперь его ожидают получить магазин
документировать функции , но это это своего рода
такие как батарейки включены магазин
функция документа, где вам не нужна
передать все эти зависимости в
это то, что мы используем для этого связывания
заявив, что давайте будем хранить документы
фабрика документов и, скажем, да
скажем , как мы импортировали эти
здесь нравится то , что и это требует от всех
там висят там там там
и там
и теперь это будет рабочий документ
то я передам это в мнение
просто для того, чтобы дать вам представление, давайте представим себе
что импортный вид от вас не говорит да
мы думаем , что это здесь это
не смотрите, так как мы просто экспортируем его
для просмотра вас, и вам нужно понравиться
представьте себе много логики взглядов, позвольте мне
очистить этот пробел здесь
и таким же образом представим себе, что
это еще один файл, который не уверен, что мы
собираюсь назвать это как документ магазина
возможно, туристический документ , и мы импортируем
импортировать магазин и не ходить и завод
от слова не экспериментируйте и давайте
скажем, что мы экспортируем экспорт, это нормально, что
много кода, позвольте мне пройти через действительно
медленно с тобой, что, черт возьми, случилось
здесь начнем здесь, в штате Мэн Дж.
поэтому в приложении , использующем инверсию
контроля уровня корня вашего
приложение является частью вашего
приложение , которое отвечает за
все это делает инъекционный
происходит в приложении , так что импортирует
магазин здесь, и он также
импортирует все зависимости, которые он
знает, что фабрика документов магазина
потребностей, а затем он использует магазин
фабрика документов для создания магазина
функции документа, передав все
зависимости, которые хранятся на заводе
хочет, и теперь у нас есть этот магазин
Функция документа , который готов к его
есть батареи, и мы передаем их
вниз в
вам нужен документ магазина
чтобы сохранить его
вы видите здесь, что он получает магазин
но даже при том, что
хранить функцию документа здесь на самом деле
имеет больше аргументов, он имеет семь
аргументы, и мы все же можем позвонить
это здесь только с тремя и
это потому, что документ магазина
Фабрика уже сварила, что
используя bind здесь, которые хорошо захватывают это
функции на новую функцию new
вариант документов магазина, которые имеют
эти первые четыре аргумента всегда
Прикрепленный вид как батарейки
в комплекте халифата появилась новая функция
в javascript называется структурирование i
есть эпизод о том, что вы там
может использовать, чтобы сделать эту вещь немного
менее подробный, если добавить фигурные скобки здесь
в фигурной скобке здесь теперь, что означает
что первый аргумент в хранилище
Функция документа — это зависимости
объект, подобный объекту,
вы ожидаете, что эти
свойства, и это означает, что я могу
просто делай, как эта глубина bonk bonk bonk
bonk bonk bonk bonk bonk bonk bonk bonk
и да, сделайте это здесь, вот что
там, это намного чище, если вы
не нравится фабрика документов магазина
именования вы можете назвать его create
вместо этого хранить документ вместо точной формулировки
и синтаксис этих вещей, которые
не важно, что я просто показываю
это вам, чтобы вы могли получить
некоторые идеи о том, как вид работ в
но важно то, что
принцип, поэтому мы имеем здесь основные J
как человек по какой-то причине
как
возможно, потому что это контроллер
босс приложения, которое получает
координаты объединяют все
когда основной газ начать настройку
приложение начинается с создания этого
хранимая функция документа хранения документов
и причина, по которой это происходит, потому что
main.js знает, что для представления потребуется
хранить документ, иначе
не может обрабатывать загрузки файлов в представлении if
вы не являетесь основным j / s, также
для хранения документов требуется несколько вещей
в свою очередь, работать так в примере, что
мы видели перед ними это пользовательская БД
и папка DB и да пользователь
доступа , и они вводятся в
документ магазина магазина в коде
прежде чем мы получили эту фабричную функцию, которая
сделал это немного легче для яслей
но с концептуальной точки зрения,
ответственность , возможно, также был
смешать, поскольку это не имеет большого значения
и как только основной DF создал магазин
функции документа вводится в
так что теперь он находится внутри
Посмотреть все смысл
имеют доступ к этим батареям
хранить документ, на самом деле нет
не заботясь об этих трех этих
зависимостей здесь, как из представлений
точка зрения с точки зрения взглядов
это — хорошо было применено это просто
черный ящик, который он может вызвать для хранения
документы, и это то, на что оно ссылается
когда вы говорите об инверсии контроля
как сейчас зрения больше нет
касается деталей из
реализация , которая была абстрагирована
прочь сюда в главную Джайю, чтобы она
контроль был инвертирован
так что теперь я надеюсь, что это имеет смысл для вас, если
это не совсем нормально, это
немного ошеломляет иногда проводке
вопрос ниже, и я или парень
зрители должны ответить на ваш вопрос и
это вы наблюдали эпизод
функции Паула Zahn
выпустите их каждое утро в понедельник Oh
800 GMT, но вы забудете, что в
для того , чтобы не пропустить следующий эпизод вы
можно щелкнуть маленьким колокольчиком рядом с
кнопку подписки в приложении YouTube
включить уведомления в этот эпизод
довольно техничный, у меня также есть это
программные эпизоды, которые мы могли бы
хотите проверить или этот эпизод, который
YouTube говорит, что это машинное обучение, но
действительно, это произвольно, я nvj до тех пор, пока
следующий понедельник утром спасибо
Please follow and like us:

Be First to Comment

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