Мне было интересно, что является предпочтительным способом внедрения зависимостей в коде node.js.
Я работал над проектом, в котором нет внедрения зависимостей. Вот почему у меня есть 2 способа предоставления зависимостей в моем коде:
Посредством аргументов конструктора / функции - это имеет тот недостаток, что разбирает количество аргументов в функциях, когда я передаю аргументы с более высоких уровней моей программы в более низкие,
function createListener(queue) {
return function listen() {
while (true) {
const messages = queue.receiveMessages();
...
}
};
}
Использование require () - это эквивалентно жесткому кодированию тех зависимостей, которые возникают в случае, если труднее издеваться и тестировать.
const queue = require('./queue');
function createListener() {
return function listen() {
while (true) {
const messages = queue.receiveMessages();
...
}
};
}
Я пытался ударить сладкое место между теми. При предоставлении зависимости, которая является сложным механизмом, я стремлюсь внедрить ее, когда имеешь дело со значениями или менее важными механизмами, которые я использую, требуются.
Это нормально? Что было бы лучше?