Когда использовать require и когда предоставлять зависимости через аргументы - PullRequest
0 голосов
/ 09 апреля 2020

Мне было интересно, что является предпочтительным способом внедрения зависимостей в коде 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();
            ...
        }
    };
}

Я пытался ударить сладкое место между теми. При предоставлении зависимости, которая является сложным механизмом, я стремлюсь внедрить ее, когда имеешь дело со значениями или менее важными механизмами, которые я использую, требуются.

Это нормально? Что было бы лучше?

...