BT

Netflix.com adopte le JavaScript Universel, et abandonne Java de son Pipeline de Rendu

| par David Iffland Suivre 4 Abonnés , traduit par Nicolas Frankel Suivre 7 Abonnés le 17 août 2015. Durée de lecture estimée: 3 minutes |

L'équipe derrière Netflix.com a basculé d'un moteur de rendu HTML basé sur Java vers JavaScript, qu'ils peuvent exécuter à la fois sur le serveur et sur le client.

Pour diminuer le temps d'attente des utilisateurs, Netflix a supprimé le moteur de rendu basé sur un serveur Java et a réduit la quantité de HTML envoyé sur le réseau. Dans un article décrivant le changement, Kristofer Baxter a déclaré qu'en ne rendant pas des morceaux de l'application que l'utilisateur ne verra jamais (entre autres changements), ils ont été en mesure d'accélérer le temps jusqu'à l'interaction de 70%.

Chaque fois qu'un visiteur arrivait sur une page de netflix.com, notre couche Java générait la majorité de la réponse nécessaire pour l'intégralité de la durée de vie de la page et la distribuait comme balises HTML. Souvent, les utilisateurs étaient en attente de la génération des balises pour de grandes parties de la page qu'ils ne visiteraient jamais.

Surnommé "JavaScript Universel", Netflix a architecturé son nouveau moteur de rendu de l'interface utilisateur afin d'être en mesure de l'exécuter dans un navigateur ou dans un serveur node.js. Baxter dit que cette technique "permet à l'application de rendre exactement le même résultat indépendamment de l'emplacement du rendu. La forte séparation n'est plus présente et il est beaucoup moins probable pour le serveur et le client d'être différent d'un autre".

Appliqué à JavaScript, Charlie Robbins a présenté l'idée en 2011. Il l'a appelé "JavaScript Isomorphique", ce qui a abouti à des années de débat sur ​​la pauvreté du nom. Ces derniers mois, le terme JavaScript Universel a remporté l'adhésion.

Le passage à un modèle JavaScript Universel n'est pas aisé et nécessite une base solide. Baxter a rapporté à InfoQ que la qualité du code est de la plus haute importance. "S'assurer que les deux environnements JavaScript partagent le même contexte est primordial. Sans une solution architecturale solide à ce problème, le code peut facilement se fracturer en une branche serveur et une branche client", a déclaré Baxter.

Alors que Netflix a choisi React.js pour leur fournir cette capacité, ce n'est pas la seule option. Ember.js disposera prochainement d'une technologie dénommée FastBoot qui annonce quelque chose de semblable. Il existe également beaucoup d'autres librairies disponibles à expérimenter.

Netflix a opté pour le système de JavaScript Universel après un duel en tête-à-tête à l'intérieur de l'entreprise. Baxter a dit qu'un autre prototype construit en utilisant des techniques de SPA a également été pris en considération :

Quand nous avons commencé la phase de prototypage de ce projet, nous avons construit deux prototypes complets avec des modèles concurrents utilisant des architectures différentes. Le premier était une architecture JavaScript côté-client fortement basée sur Backbone et jQuery ; le second, une conception concurrente utilisant JavaScript Universel et React.js. Après une période de trois semaines, les deux architectures ont été présentées à une équipe élargie et JavaScript Universel avec React.js était le grand gagnant. Cependant, nous allons continuer à l'avenir à tenter des approches nouvelles et différentes pour construire des applications web.

La liste des entreprises qui développent avec le JavaScript Universel est en pleine croissance. Hotel Tonight, AutoDesk, Tesco et AirBnb ont développé des produits avec cette architecture ou sont en train de le faire.

Evaluer cet article

Pertinence
Style

Bonjour étranger!

Vous devez créer un compte InfoQ ou cliquez sur pour déposer des commentaires. Mais il y a bien d'autres avantages à s'enregistrer.

Tirez le meilleur d'InfoQ

Donnez-nous votre avis

Html autorisé: a,b,br,blockquote,i,li,pre,u,ul,p

M'envoyer un email pour toute réponse à l'un de mes messages dans ce sujet
Commentaires de la Communauté

Html autorisé: a,b,br,blockquote,i,li,pre,u,ul,p

M'envoyer un email pour toute réponse à l'un de mes messages dans ce sujet

Html autorisé: a,b,br,blockquote,i,li,pre,u,ul,p

M'envoyer un email pour toute réponse à l'un de mes messages dans ce sujet

Discuter

Se connecter à InfoQ pour interagir sur ce qui vous importe le plus.


Récupérer votre mot de passe

Follow

Suivre vos sujets et éditeurs favoris

Bref aperçu des points saillants de l'industrie et sur le site.

Like

More signal, less noise

Créez votre propre flux en choisissant les sujets que vous souhaitez lire et les éditeurs dont vous désirez suivre les nouvelles.

Notifications

Restez à jour

Paramétrez vos notifications et ne ratez pas le contenu qui vous importe

BT