Size: a a a

Node.js — русскоговорящее сообщество

2020 December 31

PS

Pavel Shakhov (pongo... in Node.js — русскоговорящее сообщество
Vlad Sobenko
Уж лучше, чем импорт всего откуда угодно.
суть ДИ в том, что ты настраиваешь конфигурацию в корне приложения. а все остальное вообще не знает что у тебя ДИ (ну, в идеале). и зависимости указываются явно, в конструкторе.

в случае с сервис локатором ты можешь в любой функции вызвать через него любую зависимость. значит придется по всему коду искать что же ты там используешь в зависимостях. это не явно и ничем не отличается от импорта.
источник

PS

Pavel Shakhov (pongo... in Node.js — русскоговорящее сообщество
Vlad Sobenko
С потерей типов, через костыли? А сервис локатор можно всегда через аргументы таскать.
ди-контейнеры в тс не проверяют типы
источник

VS

Vlad Sobenko in Node.js — русскоговорящее сообщество
Pavel Shakhov (pongo)
ди-контейнеры в тс не проверяют типы
Да я и не в курсе. Только с пхп буду на ноду прыгать. В пыхе с DI всё хорошо. Хз как там в ноде
источник

PS

Pavel Shakhov (pongo... in Node.js — русскоговорящее сообщество
Vlad Sobenko
Да я и не в курсе. Только с пхп буду на ноду прыгать. В пыхе с DI всё хорошо. Хз как там в ноде
сервис-локатор является анти-паттерном в любом языке
источник

VS

Vlad Sobenko in Node.js — русскоговорящее сообщество
Pavel Shakhov (pongo)
суть ДИ в том, что ты настраиваешь конфигурацию в корне приложения. а все остальное вообще не знает что у тебя ДИ (ну, в идеале). и зависимости указываются явно, в конструкторе.

в случае с сервис локатором ты можешь в любой функции вызвать через него любую зависимость. значит придется по всему коду искать что же ты там используешь в зависимостях. это не явно и ничем не отличается от импорта.
Локатор можно в аргумент ф-ции передавать. Это уж лучше, чем импорт.
Вообще не защищаю локатор, если что. Согласен - антипаттерн
источник

PS

Pavel Shakhov (pongo... in Node.js — русскоговорящее сообщество
Vlad Sobenko
Локатор можно в аргумент ф-ции передавать. Это уж лучше, чем импорт.
Вообще не защищаю локатор, если что. Согласен - антипаттерн
явно -- это только когда ты передаешь через аргументы сами зависимости.
источник

PS

Pavel Shakhov (pongo... in Node.js — русскоговорящее сообщество
а если локатор передаешь, то придется по всему коду искать что ты там через локатор вызываешь -- это неявно
источник

VS

Vlad Sobenko in Node.js — русскоговорящее сообщество
Pavel Shakhov (pongo)
с импортом ты тоже можешь мокнуть импорт и заменить на свое. без каких-либо проблем
А именнованный импорт тоже нормально мокается? Я на фронте пробовал мокать, чёто не выходило, только через вайлкард import * as module from '..'
источник

PS

Pavel Shakhov (pongo... in Node.js — русскоговорящее сообщество
Vlad Sobenko
А именнованный импорт тоже нормально мокается? Я на фронте пробовал мокать, чёто не выходило, только через вайлкард import * as module from '..'
насколько я знаю, да, мокается всё без проблем
источник

PS

Pavel Shakhov (pongo... in Node.js — русскоговорящее сообщество
сам я, впрочем, моки импортов не использую
источник

VS

Vlad Sobenko in Node.js — русскоговорящее сообщество
Pavel Shakhov (pongo)
сам я, впрочем, моки импортов не использую
DI?
источник

PS

Pavel Shakhov (pongo... in Node.js — русскоговорящее сообщество
Vlad Sobenko
DI?
внедряю напрямую через конструктор, без отдельных контейнеров
источник

VS

Vlad Sobenko in Node.js — русскоговорящее сообщество
Pavel Shakhov (pongo)
внедряю напрямую через конструктор, без отдельных контейнеров
Руками?
источник

PS

Pavel Shakhov (pongo... in Node.js — русскоговорящее сообщество
Vlad Sobenko
Руками?
руками
источник

VS

Vlad Sobenko in Node.js — русскоговорящее сообщество
Жесть. То есть, у тебя где то дерево вызовов?
new App(new Router([new SomeAction(new Service1(new Service3(new Service(4)), new Service2())]))->handle()?
источник

PS

Pavel Shakhov (pongo... in Node.js — русскоговорящее сообщество
Vlad Sobenko
Жесть. То есть, у тебя где то дерево вызовов?
new App(new Router([new SomeAction(new Service1(new Service3(new Service(4)), new Service2())]))->handle()?
да
источник

AP

Alexander Podkidyshe... in Node.js — русскоговорящее сообщество
Ээээ
источник

VS

Vlad Sobenko in Node.js — русскоговорящее сообщество
Тоже норм подход. Ну мне чёт страшно такое.
источник

VS

Vlad Sobenko in Node.js — русскоговорящее сообщество
Вообще считаю, что на ноде нужно писать в фп стиле. Но я так понимаю не модно?
источник

PS

Pavel Shakhov (pongo... in Node.js — русскоговорящее сообщество
Vlad Sobenko
Тоже норм подход. Ну мне чёт страшно такое.
ну у меня не очень большие приложения, так что не страшно. один раз создать зависимости и раскидать по контроллерам.

зато компилятор тс проверяет соответствуют ли зависимости интерфейсам. чего не делают ди-контейнеры
источник