Veuillez me dire si:
- Node.js rendra notre site plus rapide!
- Node.js consommera moins de ressources serveur, nous pouvons économiser de l'argent!
- Node.js nous rendra plus productifs!
- Node.js signifie que nous pouvons partager du code JavaScript côté client et côté serveur.
Pour clarifier, nous réécrivons un serveur frontal, qui communiquera avec notre application Ruby on Rails existante en tant qu'API. Pendant ce temps, nous transformerons notre application Ruby on Rails en services.
Plus de détails sur l'architecture existante:
- Memcached pour la mise en cache des partiels HTML
- Redis pour la session et une mise en cache de données structurée
- Maître unique MySQL , plusieurs esclaves
- Il y a une grande table qui accepte beaucoup d'écritures (imaginez un sondage)
- Sinon, lit principalement.
- MongoDB pour certaines métadonnées
- Ruby on Rails 3.0
- nginx et licorne
architecture
ruby-on-rails
node.js
rewrite
user88487
la source
la source
Réponses:
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 principale raison était 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!
Il a cependant 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.
la source
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 à vos 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, sauf s'il est explicitement configuré pour le faire, il ne peut pas tirer parti de plusieurs processeurs .
Jetez également un œil aux commentaires. Ils fournissent un bon aperçu du fonctionnement de Node.js.
la source