J'ai évalué des solutions d'architecture pour un projet mobile qui aura un service / application Web en plus des applications natives et j'ai examiné diverses bibliothèques, frameworks et piles comme Meteor , ce qui est une sorte de "framework de package de pile ouverte". , est étroitement lié avec Node.js .
Il y a beaucoup de discussions sur les avantages d'utiliser le même langage côté client et côté serveur, et je ne comprends pas. Je pourrais comprendre si vous voulez refléter l'état entier d'une application Web à la fois sur le client et le serveur, mais que vous avez du mal à trouver d'autres gains ... Efficacité du flux de travail?
J'essaie de comprendre pourquoi la parité linguistique client / serveur est considérée comme un Saint Graal. Pourquoi la parité de langage client / serveur est-elle importante dans le développement logiciel?
Réponses:
Côté PRO:
Côté CON:
Dans le développement Web, les langages ont proliféré, créant des outils puissants pour des parties spécifiques du système ainsi que le besoin de nombreuses spécialités à apprendre par les développeurs ou les équipes de développeurs. Dans d'autres domaines comme le traitement des transactions ou les systèmes embarqués qui suivent une approche de conception de systèmes de systèmes, il peut y avoir des économies grâce à un langage commun.
Les nouveaux frameworks Javascript semblent arriver très rapidement, et un certain travail est fait pour regrouper les API pour le back-end et les outils pour le front-end. Il peut être judicieux de conserver la flexibilité et la séparation des problèmes entre le code côté client et le côté serveur afin que vous soyez libre de flotter entre eux sans être trop coincé trop longtemps avec un outil particulier.
la source
On présume que les avantages perçus sont:
c'est-à-dire qu'il facilite la gestion des ressources pour les chefs de projet et a peu ou pas d'avantages techniques (peut-être même un avantage technique négatif si vous embauchez un tas de poneys astucieux)
la source
L'avantage est que vous pouvez réutiliser (dans une certaine mesure) l'expertise et le code des utilisateurs des deux côtés.
Personnes
Les développeurs doivent maîtriser une seule langue et former un seul pool. Plutôt que deux bassins d'expertise. Cela facilite le transfert de connaissances entre eux et leur permet également de basculer plus facilement leur travail entre le client et le serveur. Enfin, il facilite la communication avec les membres de l'équipe de «l'autre côté» lors de discussions sur des questions techniques car ils partagent le même bagage technique.
Code
Parfois, il est utile d'avoir un état côté client, ou des algorithmes, ou les deux. Parfois, la même chose se fait des deux côtés. Prenons l'exemple d'un jeu multijoueur: vous devez représenter l'état du jeu sur le client et le serveur. De plus, vous devez implémenter les règles côté client (pour la réactivité) et également côté serveur (pour valider les actions d'un joueur). Pouvoir réutiliser du code pour ces choses peut être un grand avantage. ... dans certaines autres applications, vous n'en aurez pas du tout besoin ... tout dépend du cas.
... bien sûr, il y a aussi des inconvénients, mais c'est pour un autre post;)
la source