Veuillez me dire si:
Pour clarifier, nous réécrivons un serveur frontal, qui parlera à notre application Ruby on Rails application en tant qu'API. En attendant, nous allons refactoriser notre Ruby on Rails application dans les services.
Plus de détails sur l'architecture existante:
La plupart des questions que vous posez ne répondent pas sans contexte, et sont plus ou moins théoriques étant donné que la direction a déjà fait le choix pour vous ... à moins que vous ne demandiez "devrais-je quitter et trouver un nouvel emploi face à tout ce changement ?
Si vous allez vous durcir, je vous recommande de lire cet article sur le sujet: Comment survivre à une réécriture de fond en comble sans perdre votre santé mentale .
J'ai récemment commencé à réécrire un peu de logique de serveur dans node.js. La raison principale est qu'il est actuellement écrit en .NET et nous souhaitons migrer loin des environnements MS sur la piste.
Jusqu'à présent, mes expériences ont été positives, vous aurez une première courbe d'apprentissage avec tout ce qui n'est pas bloquant, mais une fois passé, c'est en fait assez amusant à coder. Je sais, FUN!
Cependant, il a un côté sombre, chaque homme et son chien qui ont fait du développement frontal avec JavaScript - et ce serait tous les développeurs frontaux j'espère - deviennent un peu excités lorsque vous mentionnez que node.js est `` javascript côté serveur 'cependant, cela ne signifie pas que les développeurs frontaux auront l'expérience requise pour écrire de bonnes applications côté serveur.
Pour une chose que vous avez considérée, c'est qu'une erreur fatale fera tomber toute l'application en raison de sa nature non threadée, donc les enjeux sont un peu plus élevés et vous devez tout vérifier et attraper explicitement.
Pour ceux qui ont fait à la fois avant et arrière - et apprécient les deux - ne pas avoir à changer les contextes mentaux des langues frontales en langues frontales est un vrai bonus qui, à mon avis, augmentera la productivité de notre équipe sur la piste.
Eh bien, je ne pense pas que la réécriture de l'application était une bonne idée, sauf si elle fonctionnait mal. Pour répondre à tes questions:
Node.js n'est pas magique. Votre application compte énormément d'utilisateurs, il n'y a donc aucun moyen d'être certain qu'elle le rendra plus rapide.
Eh bien, oui, Node.js consomme en fait moins de ressources serveur. Ainsi, non seulement vous pouvez économiser de l'argent sur les ressources, mais vous pouvez également faire plus avec les ressources existantes. Cela est principalement dû à la nature monothread de Node.js. Il n'y a pas de surcharge de threads supplémentaires.
Encore une fois, Node.js n'est pas magique. Cela dit, il pourrait y avoir du vrai là-dedans. Node.js a une communauté très active qui a créé des centaines de modules pour chaque tâche possible. Il est donc très probable que la plupart du travail a été fait pour vous. Vous avez juste besoin d'assembler les pièces ensemble.
Théoriquement, oui. Étant donné que Node.js est JavaScript, vous pouvez partager du code entre le client et le serveur. Mais je ne sais pas exactement ce qui sera partagé. Je n'ai écrit aucun morceau de code réutilisable sur un client. Les choses que nous faisons sur le serveur n'ont généralement rien à voir avec le client. Le plus important pour moi est le manque de changement de contexte. Je trouve plus facile de coder sur le client et le serveur dans une seule langue.
Étant donné que Node.js est monothread, à moins que explicitement configuré pour ce faire, il ne peut pas tirer parti de plusieurs CP .
Jetez également un œil aux commentaires. Ils fournissent un bon aperçu du fonctionnement de Node.js.