Я работаю над небольшим проектом по хобби, где мне бы очень понравился вход и совет.node.js архитектурный совет по предотвращению глобального состояния
Это мой первый проект «настоящего» узла, и я надеюсь, что он научит меня многому о развитии node.js. Я являюсь разработчиком .net днем и профессионально занимаюсь в течение 15 лет. У меня также были периоды работы с Java. Я создал небольшие проекты node.js, которые будут использоваться в качестве микросервисов.
Но этот проект не может быть больше не классифицируются как микро сервис ;-)
Целью проекта является образец некоторых данных датчика, и сделать некоторые отчеты. Идея, которую я получил от игры в ПЛК в университете. Я делаю это путем выборки из ПЛК и испускания данных с помощью ZeroMQ. Затем мой node.js-сервер прослушивает данные этого сенсора и сохраняет его в MongoDB.
Я раскрываю эти данные в REST api. REST api также предоставляет ресурсы, такие как партии и другие вещи, такие как аутентификация и т. Д. Кроме того, у меня есть приложение AngularJS, которое создает пользовательский интерфейс.
Единственное, что меня действительно раздражает, - это то, что я хочу глобально назначить, какой пакет работает. У меня есть набор партий, и один из них работает. Есть два способа, которые я вижу для этого, и оба иллюстрируют мой статус новичка в мире node.js. Все пользователи должны быть в состоянии видеть, что пакет работает, и я хочу, чтобы иметь возможность легко сказать из любого места кода.
1) Установите флаг на объект в Монго. У этого есть ряд проблем. Очевидным является производительность. Я получаю данные датчиков 10 раз в секунду, и я не хочу каждый раз запрашивать базу данных, какую часть ее сохранить.
2) Сохраните информацию о глобальном объекте. Мне тоже это не нравится. Мне не нравится глобальное состояние в моем коде.
Что такое хороший шаблон для выполнения чего-то подобного? Имеет ли смысл мой вопрос?
Заранее спасибо
Путь слишком широкий. Пожалуйста, вернитесь с конкретными вопросами и, пожалуйста, отметьте только те точки, в которых вы обращаетесь. Вы, честно говоря, можете больше любить концепцию дизайна «на ногах» на [programers.stackexchange.com/](http://programmers.stackexchange.com/), где допускается более частый разговор. Или вы можете задать здесь конкретный вопрос. –
Хммм, возможно, вы правы ... в основном интересуется, как обращаться с глобальными объектами, когда я думаю об этом. Попробуем уточнить вопрос. –