Press "Enter" to skip to content

Advanced Dependency Injection without classes — Fun Fun Function


хорошее утро в понедельник сегодня мы собираемся
сделать небольшое продолжение на прошлой неделе
видео, которое было связано с зависимостью
инъекции в JavaScript без использования
классы
Я mpj, и вы смотрите веселую забаву
функция
[Музыка]
Я вернулся домой, и он чувствует себя так хорошо
если, если вы задаетесь вопросом о моих волосах
это мой этап волосы от Nordic
джаз тебе нравится мм-хмм
в котором я принимаю совместный хостинг
на прошлой неделе, и это было странно
неделю, потому что я записываю это на
Воскресенье, и это было потрясающе удивительно
удивительный, но он также, вероятно, был одним из
самые трудные работы, которые я когда-либо делал
сделанный
Иисус был настолько интенсивным, что некоторые поклонники показали
и дал мне сербскую конфету II.
это не очень хорошая идея есть вещи из
случайных людей в Интернете, но это
поэтому я думаю, что это нормально, если я
это будет доказательством того, что это от
манга спасибо тебе новая манга Я хотя бы
Я почти уверен, что это был не Джон
думаю, все было довольно
Северные вздохи, мой бог, это очень хорошо
в любом случае на прошлой неделе мы исследовали, как это сделать
инъекции без использования
классов в JavaScript и сегодня я бы
как продолжить изучение этого, но с
некоторые более сложные примеры и
также немного поговорим о
архитектура здесь является примером того, что
был в начале прошлой недели
видео Я просто очень быстро напоминаю вам
это был пользовательский менеджер класса, который
мы добавляем, что здесь
в конструкторе, а затем
создать пользовательский метод, который использует это
соединение для доступа к пользователям таблицы и
вставьте, и вы используете его с некоторой ерундой
свойства, которые я составил, а затем это
возвращает идентификатор пользователя точно, что это
код действительно не важен
что это зависит от этого
подключение к базе данных линии мы хотим
вводите так, чтобы мы контролировали
наши зависимости, и мы можем их протестировать
и затем мы реорганизуем этот код тоже
вместо использования класса с использованием набора
вложенные функции, и мы в порядке, так что
делает то же самое, имея
это создание этой заводской функции
который создает использование функции
и использует закрытие для прохождения прохожего
зависимость соединения вместо использования
вместо использования свойств класса, поэтому
это то, что мы сделали, но то, что я бы
хотел бы обсудить сегодня , если я спрошу
control-z вернемся к нашему первоначальному примеру
там что , если у нас было больше , чем один
метод здесь, скажем, мы просто изобретаем один
ведущему пользователю, и мы называем его идентификатором
там и давайте просто составим некоторые
так что теперь
ситуация немного изменилась
потому что теперь у нас есть эти оба эти
методы теперь используют это
чтобы мы делились
зависимость инжектора между этими двумя
эти два класса эти два метода и
это означает, что мы собираемся
исследовать сегодня этот обмен
зависимости между функциями
Я покажу вам, как это сделать
без использования без использования классов, но
Я также немного обсужу
о том, почему вы не хотели бы этого делать
такого рода обмен, каковы
оговорки с ним мы похожи, когда следует
вы делаете это, и когда вы не должны
увеличьте шрифт, чтобы он немного
все в порядке, давайте вернемся к веселью
пример shanell здесь bloop bloop well
это то же самое , как и раньше
и давайте добавим удаления пользователя
эквиваленты удаляют пользователя, и это было
соединение и имя, и это было
что-то вроде этого, это был идентификатор
что-то вроде этого
точная реализация вовсе не
важно то , что мы имеем дело с искробезопасными
эта связь здесь хорошо, так что давайте
подумайте о том, как мы используем эти вещи
является примером из последнего эпизода
это файл , который мы только
редактирование, и мы пытаемся сделать
создать пользователя, поскольку он уже существует
теперь давайте также троллим
удалите пользователя, который у нас был, а затем мы
используйте make delete user для создания
запущена функция фактического удаления
извините, удалите пользователя, используя соединение
все, так что мы видим здесь
немного дублирования, которое
немного нарушайте глаза, потому что
программистов, которых мы обучаем смотреть на
щелкните поиск дублирования и
убери это
Я часто говорю о том, как вы должны быть
очень осторожно об удалении дублирования
вы должны это сделать абсолютно, но вы
должен сделать это в обороне и ждать
много дублирования на наших глазах раньше
удалив его, иначе вы
вероятно, пропустить идентифицировать
шаблон, и вы будете обобщать
неправильно мы будем говорить о
это в ходе этого видео и
во многих примерах, но пока давайте
представьте, что мы действительно хотим удалить
это дублирование не позволит
что у нас есть еще несколько примеров этого
скажем, что, возможно, у нас было хм, я бы
скажем, что мы составили дату сэр и
возможно, запретите вам сэра, а теперь
мы начинаем видеть некоторые некоторые
дублирование здесь мы собираемся
удалив это, но сначала я хотел бы
Обращаем ваше внимание на то , как
эту зависимость очень легко увидеть сейчас
как это очень ясно, как
потока зависимостей, и они действуют на
момент есть некоторое дублирование, конечно, но
это все еще очень легко видеть и рассуждать
об этом очень просто, но давайте играть
вокруг немного с некоторым более высоким
если вы находитесь в более высоком порядке
функции , это немного суетливая концепция для
у вас у меня есть видео ,
вы можете проверить
BAM, так что это точно так же,
вы видите здесь, что эта вещь здесь мы
заменили это с помощью карты
вот так мы в основном взяли все
они здесь помещают их в этот массив, который
называется фабриками, а затем мы сопоставляем, что
карту по заводам здесь и для
на каждом заводе мы называем этот завод, где
объект соединения и это даст
нас массив, а затем мы используем
разрушение здесь, чтобы извлечь это в
переменные, поэтому теперь мы можем просто называть
создайте пользователя и Джо Смита здесь или удалите
пользователь один два три, если этот синтаксис здесь
это новое для вас это называется
разрушение — это новая функция в
JavaScript вы можете проверить мое видео на
деструктурирование здесь довольно круто
но мы делаем слишком много прогноза
будущего здесь мы предполагаем, что
все функции будут иметь одинаковые
тот же набор зависимостей, который не является
правда, скажем, что пользователь запрета также
требуется служба электронной почты, так что да
может вводить все зависимости
во все функции
это становится немного странным, это не
совершенно необоснованно о, я думаю, что
мы могли бы просто ввести все зависимости как
как объект во все, как впрыскивать все
все зависимости на всех заводах, но
мне кажется , что мы хотим
немного больше контроля, это кажется
давайте попробуем еще один способ, чтобы мы знали
что это также требует службы электронной почты
Я не собираюсь писать электронную почту
вы можете себе представить, что это все равно
вещь , так как это соединение , но вместо
Unicron DB vendor, возможно, это некоторые
поставщик услуг электронной почты, и мы делаем некоторые
экземпляр здесь, а затем передать его в
запретить пользователю M хорошо как мы продолжаем вас
все в порядке, поэтому вместо этого
что у нас была функция пользователя utils
и вы позвонили, чтобы заставить пользователя загружать вас
знай, что я собираюсь прокомментировать это
оставьте его для сравнения, и мы собираемся
переходить в соединение зависимостей
в почтовой службе, и это будет
дайте нам объект, который мы будем
состав
вернемся к использованию utils и
я вижу, что я действительно сделал
ошибка здесь запутанная ошибка это
должен быть удален пользователем здесь, потому что
это фабрика, которая создает
delete user delete user — это функция
здесь и все это здесь, что
удалить пользователя или удалить его
с нами , я думаю , создавая liddie в
удалить функцию использовать функцию удаления пользователя
в любом случае давайте реорганизовать это немного мы находимся
вместо этого мы хотим экспортировать соль, а я
колонисты Я хочу, чтобы у вас озноб
о, мы не можем экспортировать константу, мы должны
сделайте это сначала, используя ваши инструменты и
вы видите utils и берете объект
с зависимостями и этими зависимостями
это соединение и почтовая служба я думаю
он был вызван, и он просто вернется
объект, куда мы идем, и это
уже не наши фабрики, они эти
являются фактическими функциями, поскольку они
все теперь имеют доступ к соединению
объект здесь я собираюсь сделать то же самое
с удаленным пользователем я не и двоеточие
вместо этого удалите это и экспортируйте
ошибка делает пользователя вы просто так экспортируете
что О, отступ должен быть правильным, так что
Теперь мы делаем это , как вместо того , чтобы
имеющий завод упс
для каждой функции, имеющей теперь
это вроде как
для всех из них
в то же время ,
ограничьте область охвата здесь, чтобы
обе эти функции имеют доступ к
объект соединения таким образом, мы можем
также создать функцию пользователя запрета I
предположим, что он принимает идентификатор, а затем есть
пользователи таблицы точек подключения давайте назовем это
обновление что — то повесить на
и я уверен, что это дельта, так что давайте
скажите, что я знаю синтаксис MongoDB здесь
что-то вроде плохого, я не знаю, что я
делая это, когда я иду, и когда
обновление сделано, он должен позвонить по почте
услуги у нас пока нет
что мы должны понять , что из его
не так, это не очень важно
к примеру, давайте просто скажем, Joe yeah
Приходите, и я запретил вам чувак подорвать
оператор из ада
хорошо, теперь вы видите, что это
имеет доступ к почтовой
доступ к ним имеет доступ к
соединение, и если мы вернемся назад
как это было использовано, мы просто проходим в
зависимостей здесь как объекта
буквально, и он может получить к ним доступ, а затем
он создает все из них одним падением
напасть на нас
обратите внимание, что этот шаблон очень похож
к классу, где с некоторыми конструкторами
позволь мне просто бросить класс
sorta, так что мы бы просто дали
сказать
вы источник нашей почтовой службы теперь мы бы
перейдите эту почтовую почту почтовой службы почты
Конечно , почтовая служба что — то подобное
и тогда мы будем делать то же самое
реализация здесь и , но вместо
используя замыкание функции
как это было здесь , вы видели бы эти
свойства на экземпляре
вместо этого, но по существу две модели
очень похожи , просто
вместо этого использует только функции и блокировки
класса построит проблему с
эта картина заключается в том, что мы находимся в
поэтому почтовое обслуживание это очень приятно в
этот случай, когда соединение используется всеми
здесь пользовательские утилиты, но только почтовая служба
используется несколькими, что означает, что это
почтовая служба здесь подвергается
и перешел во все
создавать пользователя и удалять пользователя, хотя
они не знают об этом
это не совсем кардинальный грех, но
это может быть проблематично частично, потому что
зависимости теперь меньше
очевидно, например, прежде чем мы могли бы посмотреть
в этом случае здесь, если мы вернемся к
приложение здесь мы можем точно видеть, что
зависимости , которые есть у каждой вещи, но здесь
это теперь стало немного больше
скрытые от нас зависимости
начинаю становиться этим этим комком
вещи, даже если вы смотрите в
класса целая цепь зависимостей является
бит, когда вы видите что-то вроде
это с группой здесь, она вроде делает
человек, который начинает работать в
этот класс или это все, что мы называем
его модуль
это заставляет их думать, что нормально использовать
которое действительно не могло
сделайте так, вот как раз это
здесь есть что- то вроде просто потому, что
что-то в этом файле utils не
сделать так, чтобы было разумно начать
доступ к почтовому сервису
здесь эта группировка начинает
стать немного проблематично говорение
группировки, становящейся программной
это также становится проблематичным в другом
так это то, что пользователь утилит, как это было
просто что-то, что мы начали делать
потому что , когда мы имели пользователь создавать мы помещаем
что в каком-то файле или в каком-то классе, и мы
просто подумал, что этот файл или тот
классическому нужно было имя, а затем оно стало
использование utils, и было похоже, что это
это место, где мы кладем груду
для пользователей, но как только мы
начните делать то, что мы понимаем
что нам действительно нужны функции, которые
делайте немало вещей, таких как
рассылку почтовых пользователей или, возможно, если мы
удаляют пользователей, возможно, тогда нам нужно
сделать что-то с платежной информацией
или платежную информацию или что бы мы ни были
не совсем уверен, что это, что это
эта группа вещей состоит в том, что мы имеем
преждевременно создали группу
мы действительно знаем, куда мы идем
было бы лучше просто
все эти функции
изолировать и позволить им жить самостоятельно
жизни, и пусть шаблон появится раньше
начинают группировать их, потому что когда вы
начинать группировать вещи, становится сложнее
к их незанятым, и это также делает
сообщать что-то другому
программистам, что это творческий
группа , но это на самом деле не мы просто
это только начало группы по
которые они не имеют
действительно хороший и разумный способ
группировка вещь
быть честным, как вы хотите сгруппировать
вещи , как есть, есть много других
гораздо лучшие способы объединения усилий для группировки
что тогда зависит от того, что они
зависит, но это становится следствием
если это то, что мы делаем
вещи в модули, основанные на
их набор зависимости я хочу на самом деле
прогоните этот дом, как я, когда я пойду
вернуться к примеру класса здесь, когда
мы начали создавать пользователя здесь
и нам пришлось создать класс aa let’s
представьте, что мы находимся на таком языке, как
Java, где все должно быть
класс тогда, когда вы создаете
функции вам также необходимо создать
класс упаковки, и это создает
интересная проблема, потому что мы знаем, что
мы хотим, чтобы мы знали , что хотим
вставьте пользователя в базу данных, и мы
пять-пять находят сторону, которая создает пользователя
это разумное имя, чтобы сделать это, однако
java также заставит нас называть это
вещь
этот класс является группой этой группы одного
и есть тонкая зловещая вещь
об этом, и именно этот портал
отвлекаясь, потому что мы должны назвать одно
другая вещь и именование трудно и
кропотливый
там есть старая шутка в
компьютерное программирование, говорящее, что это было
теперь есть только две трудные проблемы в
компьютерная наука параллелизм и именование
такие вещи, как много вещей, требуют времени
и здесь вы вынуждены это сделать даже
хотя на самом деле это не требуется, мы просто
хотел создать функцию, а также
мы называем причину, по которой
так сложно , что он требует от вас
предсказывать будущее, в котором
подумайте о том, что будет дальше здесь и
потому что у вас действительно нет информации
у вас есть только одна часть данных или просто
возможно, это немного
для вас, чтобы принять это решение, это
неважно , что это
рано вам стоит подождать еще
дублирование и примеры чего-то
возникнуть до обобщения или начала
группировки и организации для
группировать и обобщать или что угодно
нужно увидеть образец, который вам нужно знать
какова общая картина, и если вы
если вы не позволите удвоению сначала подняться
вы собираетесь изобретать слишком много
образ в голове, и вы идете
непредсказуемо предсказать будущее
собирается , но в , вероятно , вы собираетесь
быть неправ, и поскольку это что-то
что мы делаем много, мы должны
полагаться на вероятность, это на самом деле
отличный пример одной из главных причин
почему мне не нравится объектно-ориентированный
программирование Я чувствую, что оно стимулирует
вы должны предсказать будущее в более раннем
чем вы в состоянии сделать это хорошо
это то, что мы делаем здесь, как сделать это
использовать инструменты в реальной лаборатории, это не
что я буду делать в тот момент, когда я
программирование Я думаю, причина, по которой
мы закончили с вами три хвоста
что я хотел создать что-то, что
имели хорошее сопоставление с одним
пример исходного класса в реальном приложении I
действительно сделал бы что-то вроде этого
что-то я не знаю других сервисов
или что-то, и тогда я бы хотел просто
сделайте что-нибудь подобное, а затем я
импортировать их оттуда, не жаль, как
это будет создание пользователя и создание
удалить пользователя и сделать обновление пользователя и
сделать ван пользователя , а затем я просто
это жаль, этот огромный файл позволяет мне вернуться
здесь, где мы были раньше
LLL учится так, и файл будет
выглядят так, и я просто сброшу
дерьмо в эту другую категорию, пока я
начали выяснять очень четкие образцы
на организацию, а затем и только
то я бы начал создавать что-то
вроде бы как о, я не знаю
учетные услуги или что-то там, где я
начинайте вкладывать такие вещи, как поток пользователей
вещи, которые я не знаю, так это точка
Я не знаю , что я не знаю, как
приложение будет структурировано или что
смысл
какая структура имеет смысл для
приложения, пока вы не
время в нее так , что я большой поклонник есть
программирование вашей архитектуры
защищать, чтобы вы могли позволить
структура возникает по мере появления шаблонов
и вам станет ясно, что я пробовал так
много раз, чтобы сделать предварительную архитектуру в
приложение, и оно имеет
никогда не работал, он никогда не работает, потому что
люди не особенно хороши в
предсказывая будущее, наши мозги
проводятся так, как будто они предназначены для планирования
такие движения, как вы, мы созданы для
как хорошо, если я пойду за этой скалой
то, возможно, есть лев, мне нужно
смотри перед линией наши мозги
в основном для планирования движений и
прогнозирования архитектуры
программного обеспечения , которое
это слишком сложно для наших
мозги, поэтому пусть дублирование возникает в
высокое количество , если это возможно , вместо
пытаясь предсказать, что этот шаблон будет
быть и то , что я хочу говорить о
сегодня я хотел показать вам, как вы можете
зависимость от доли
между функциями, когда вы делаете
инъекции без
классы, но я также хотел поговорить о
проблема с совместными зависимостями в
общий и как вы должны стараться подождать
для того, чтобы модели появлялись и были четкими
вместо того, чтобы пытаться предсказать будущее
авансом вы просто смотрели эпизод
веселой функции я выпускаю эти
каждый понедельник утром О 800 GMT вы можете
просмотрите еще один эпизод здесь, если вы
есть вопросы по этому поводу
эпизод вы можете проверить эту тему на
форум Fun Fun, посвященный
этот эпизод я mpj до следующего понедельника
утром говорят любопытные
Please follow and like us:

Be First to Comment

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