Je travaille sur un petit projet de passe-temps, où j'aimerais vraiment avoir des idées et des conseils.node.js conseils architecturaux pour éviter l'état global
Ceci est mon premier "vrai" projet de nœud, et j'espère qu'il m'apprendra beaucoup sur le développement de node.js. Je suis un développeur .net par jour, et ai été pendant environ 15 ans professionnellement. J'ai aussi eu des périodes de Java. J'ai créé de petits projets node.js à utiliser comme micro services.
Mais ce projet ne peut plus être considéré comme un service de micro ;-)
Le but du projet est d'échantillonner des données de capteurs, et faire des rapports. Une idée que j'ai eue en jouant avec un PLC à l'université. Je fais cela en échantillonnant à partir d'un automate et en émettant les données en utilisant ZeroMQ. Mon serveur node.js écoute alors ces données de capteur et les stocke dans un MongoDB.
J'expose ces données dans une API REST. L'API REST expose également des ressources comme des lots et d'autres choses comme l'authentification etc. En plus de cela, j'ai une application AngularJS, qui crée définit l'interface utilisateur.
La seule chose qui m'ennuie vraiment, c'est que je veux globalement assigner ce qui est en cours d'exécution. J'ai une collection de lots, et l'un d'entre eux est en cours d'exécution. Il y a deux façons de le faire, et les deux illustrent mon statut de novice dans le monde node.js. Tous les utilisateurs devraient être en mesure de voir ce qui est en cours d'exécution, et je veux être en mesure de dire facilement à partir de n'importe où dans le code.
1) Définir un drapeau sur l'objet dans Mongo. Cela a un certain nombre de problèmes. L'évidence étant la performance. Je reçois des données de capteur 10 fois par seconde, et je ne veux pas demander à la base de données à chaque fois quel lot l'enregistrer sous.
2) Enregistrer les informations sur l'objet global. Je n'aime vraiment pas ça non plus. Je n'aime pas l'état global dans mon code.
Quel est un bon motif pour faire quelque chose comme ça? Ma question a-t-elle un sens?
Merci à l'avance
Beaucoup trop large. S'il vous plaît revenir avec des questions spécifiques et s'il vous plaît seulement marquer au point de l'architecture que vous adressez. Honnêtement, vous pourriez trouver plus d'amour pour les concepts de design "coups de pied" sur [programmers.stackexchange.com/](http://programmers.stackexchange.com/) où un peu plus de discussion est tolérée. Ou vous pouvez également poser une question spécifique ici. –
Hmmm peut-être que vous avez raison ... surtout intéressé à gérer les objets globaux quand j'y pense. Je vais essayer d'affiner la question. –