Au cours des derniers mois, j'ai reconnu une grande excitation à propos des scripts côté client dans le développement Web. Mais alors que les technologies côté serveur sont matures, stables et bien acceptées par les développeurs d'arrière-plan, les technologies côté client sont immatures (c.-à-d. Par rapport aux grandes infrastructures côté serveur) et détestées par de nombreux développeurs de longue date. Néanmoins, tout le monde fait du développement côté client ces jours-ci. Personnellement, je m'attends à ce que ces grands cadres côté serveur disparaissent dans 2 à 5 ans, en observant la tendance actuelle.
Pourquoi est-ce si? Comment le développement côté client nouveau et "diffus" en HTML5 / JS pourrait-il être supérieur aux solutions côté serveur grandes et bien pensées?
la source
Réponses:
C'est vrai:
Mais il ne se limite pas au côté client, c'est un mouvement de pile complète.
Je sais que cela peut être surprenant. S'il vous plaît, écoutez-moi.
Tout d'abord, les deux sont bien pensés.
Deuxièmement, parce que c'est mieux.
Bonne question.
Mais «mieux» est subjectif, donc la réponse à votre question est: qu'est-ce qui est mieux en particulier?
Revisitez la question:
C'est la flexibilité.
Cela ne semble pas être un gros problème. Le fait-il? Souplesse.
Maintenabilité. Extensibilité. Évolutivité. Modularité. Convivialité. UX.
Et il est plus rapide à mettre en œuvre. C'est la réalité. Plus vite et mieux.
Les téléphones intelligents ont été l'adoption des médias de masse la plus rapide depuis la télévision dans les années 1950. Maintenant, non seulement nous avons des smartphones, mais aussi des tablettes.
Déjà en développement chez Mozilla et Windows, le système d'exploitation qui fonctionnera sur les futurs appareils de leurs marchés -> HTML / JS.
De nombreuses solutions et innovations restent.
Une pile complète de JS émerge, basée sur la flexibilité.
J'espère que ça aide.
la source
Cette histoire a toujours eu deux côtés; Le code côté serveur et côté client a ses avantages et ses inconvénients.
Les avantages des scripts côté client incluent:
Mais le script côté serveur présente également de nombreux avantages:
Pour les applications Web hautement dynamiques, l'approche centrée sur le client a toujours été un choix populaire, car c'est le seul moyen de fournir une expérience utilisateur de type bureau réactive et décente: sans script côté client, chacune des actions de l'utilisateur nécessite une ronde- voyage, ce qui signifie au moins une demi-seconde de retard, généralement plus. Mais pour un site d'information qui n'est fondamentalement qu'un tas de pages statiques servies à partir d'une base de données (par exemple, wikipedia), l'avantage est marginal, tandis que les avantages des scripts côté serveur sont toujours écrasants.
Le battage médiatique observé provient d'une combinaison de deux développements récents:
En fait, rien n'a changé en ce qui concerne les approches centrées sur le serveur et centrées sur le client; ce qui a changé, c'est que le centré sur le client est désormais plus facile et moins cher à faire et fonctionne mieux qu'il y a quelques années, ce qui en fait un choix viable pour beaucoup plus d'applications qu'auparavant.
la source
Le côté serveur sera toujours là. Vous ne pouvez pas vous asseoir côté client pour tout. Par exemple, vous ne voudrez pas utiliser une conception MVC Backbone.js pour votre microcontrôleur en vous envoyant des paramètres en temps réel à partir d'un pont roulant de plancher de production.
Ne croyez pas le battage médiatique.
la source
J'ai fait le passage en 2009 d'un framework PHP côté serveur à une solution ExtJS côté client liée aux services web côté serveur.
Les raisons de la migration pour moi étaient:
En passant aux services Web, vous validez l'entrée à la frontière du service Web et contrôlez plus précisément les E / S de votre serveur. Il n'y a pas de couche d'interface utilisateur côté serveur pour brouiller votre architecture de sécurité.
L'architecture change, de sorte que les récupérations de données peuvent se produire moins souvent et les données peuvent être mises en cache localement, le rendu de l'interface utilisateur ne nécessitant aucun aller-retour. Les allers-retours sont ce qui tue les performances des applications Web.
La couche d'interface utilisateur peut être entièrement hébergée sur un CDN. J'ai même créé des applications Web hors ligne en insérant le code de l'interface utilisateur dans le cache d'applications HTML5.
Cela signifie moins de développement, d'assurance qualité, de documentation, ...
Mais ne vous y trompez pas, ce qui se passe maintenant est un battage médiatique. Il explosera et de nombreuses applications Web utiliseront à nouveau une architecture d'interface utilisateur côté serveur.
la source
Un autre facteur qui stimule l'enthousiasme pour les solutions côté client est la croissance des applications mobiles. Si vous créez un site Web fortement basé sur JavaScript et AJAX côté client, et que vous créez également des applications iOS et Android natives, il y a de fortes chances que les trois puissent utiliser les mêmes services REST pour faire toutes leurs données de va-et-vient. .
la source
Tout d'abord, l'utilisateur ne voit pas (et parfois même ne s'en soucie pas) ce qui n'est pas le serveur. Peu importe à quel point le code côté serveur est bien écrit, les utilisateurs n'apprécieront pas l'application si la partie client n'est pas bien faite. Parfois, même la belle interface utilisateur est plus importante que la fonctionnalité.
Un hébergement de serveur gros et puissant coûte assez cher. Il est beaucoup moins cher d'implémenter une partie de la logique (sauf la validation) côté client. Vous pouvez donc utiliser un hébergement de serveur plus petit (donc moins cher), car il ne serait pas trop chargé.
C'est la raison pour laquelle, malgré l'instabilité, les technologies côté client gagnent en popularité. En outre, JS et HTML / CSS sont pris en charge par (presque) tous les navigateurs modernes.
Ces deux parties d'applications ne peuvent pas exister séparément. Et Internet ne semble quitter nulle part dans un avenir proche.
Je ne pense pas que cela
big server-side frameworks
risque de disparaître non plus. Il y aura toujours des entreprises qui pourront se les permettre et utiliseront leurs avantages significatifs.la source
Le développement Web côté client est fortement associé aux navigateurs Web et à leur évolution au fil du temps. La solution que vous fournissez maintenant peut ne pas fonctionner dans quelques mois en raison de changements importants dans les moteurs de rendu de page des navigateurs Web. Certains navigateurs sont / étaient incompatibles avec les normes et nécessitaient donc encore plus d'efforts supplémentaires de la part des développeurs pour atteindre le résultat escompté.
Il existe des solutions pour résoudre ce problème. Par exemple, si vous utilisez jquery, vous êtes assuré que votre script fonctionnera sur les navigateurs pris en charge par cette bibliothèque jquery particulière. Mais c'est seulement à ses auteurs de vous fournir la compatibilité avec certains / la plupart / tous les navigateurs. La question est de savoir quelle équipe vous soutiendra le mieux. Sera-ce l'équipe motools, l'équipe jquery, l'autre équipe? S'ils ne prennent pas en charge un navigateur Web particulier, votre projet peut ne pas fonctionner dans ce navigateur.
L'excitation que vous semblez avoir existe depuis longtemps. Je l'ai vu lorsque Shockwave et son successeur Flash ont été introduits, il y a eu un "grand retour" d'interfaces utilisateur riches une fois les bibliothèques js complexes expédiées, d'abord avec motools, puis avec jquery (j'ai commencé à les utiliser dans cet ordre). Il y avait Flex et JavaFX. Mais aucun d'entre eux ne peut obtenir une grande part du marché. Certains nécessitent des plugins qui, à terme, exposent souvent l'utilisateur final à des vulnérabilités de sécurité, d'autres peuvent ne pas fonctionner côté client en raison de certains paramètres personnalisés (par exemple JavaScript désactivé dans le navigateur des clients).
D'un autre côté, la solution côté serveur n'est généralement écrite qu'une seule fois. Vous n'avez pas à vous soucier que tout échouera et devra être réécrit une fois que le nouveau Firefox / Chrome / IE / Opera sera expédié. Vous n'avez pas non plus à vous inquiéter du fait que le client tentera de falsifier votre application et / ou de corrompre les données.
la source
Entièrement d'accord avec vos sentiments. Je crois également qu'au-delà de ce que vous dites, nous allons voir une baisse spectaculaire du REST et une augmentation massive des websockets pour la principale façon dont nous voyons les sites communiquer avec leurs serveurs. Vert.x, Node.js etc. Le côté serveur tout entier, ainsi que le côté client, passe à la programmation événementielle. Java EE, PHP, Rails, etc. ils ont tous besoin de s'adapter ou ils vont perdre très rapidement.
la source