Недавно меня посетила мысль, что в программировании принято делать различные модули приложения максимально независимыми другу от друга (например, паттерн MVP, отделяющий модель приложения от view-шки). Однако, очень часто в примерах по использованию различных framework-ов для Node (Express, Socket.io и т.д.) вижу приблизительно следующую картину:
Router:
Controller:
Разве такой подход не привязывает бизнес логику приложения к используемому фреймворку и, соответственно, усложняет рефакторинг, в случае перехода на другой стэк технологий, или же повторное использование модели для другого проекта?
И что скажете насчет подхода, показаного снизу?
Router:
Controller:
Что можете посоветовать из литературы по проектированию архитектуры веб-серверов?
Кликните здесь для просмотра всего текста
Router:
Код:
let someController = require('someController');
module.exports = (app) => {
app.route('/api/some/route').post(someController.someMethod);
};
Код:
exports.someMethod = (req, res) => {
let data = req.body;
// ...
res.send(result);
};
Разве такой подход не привязывает бизнес логику приложения к используемому фреймворку и, соответственно, усложняет рефакторинг, в случае перехода на другой стэк технологий, или же повторное использование модели для другого проекта?
И что скажете насчет подхода, показаного снизу?
Кликните здесь для просмотра всего текста
Router:
Код:
module.exports = (app) => {
app.route('/api/some/route').post((req, res) => {
someController.someMethod(req.body, (result) => {
res.send(result);
});
});
};
Код:
exports.someMethod = (data, callback) => {
// ...
callback(result);
};
Что можете посоветовать из литературы по проектированию архитектуры веб-серверов?