Alioze

Développement : faut-il se tourner vers Node.js à l’avenir ?

Développement Nodejs 2017

Node.js : la technologie qui monte, qui monte… et qui monte encore.

Le sujet n’est pas nouveau chez les développeurs. Depuis son lancement en 2009, Node.js n’en finit pas de faire des émules. Entre les anti et les pros, les avis sont partagés : certains voient en lui l’avenir de la programmation, d’autres ne comprennent pas l’engouement suscité.

 

De 2015 à 2019 : intérêt grandissant pour node.js sur Google Trends

Mais d’abord, Node.js qu’est-ce que c’est ? Et en quoi cette techno pourrait être utile à votre site web ou e-commerce ?

Node.js est un environnement open-source permettant de développer des applications multi-plateformes. Basé sur le V8 de Google, le moteur d’exécution JavaScript utilisé dans Chrome, Node.js traite donc les données en JavaScript. 1ère surprise : avec Node, l’écriture se fait en JavaScript non plus uniquement côté client, mais également côté serveur ! Node vient ainsi concurrencer les autres langages serveurs que sont par exemple PHP ou Java.

Si Node.js peut effectivement être utilisé comme serveur sans avoir besoin d’une solution externe tels que Apache ou lighttpd, il reste avant tout une plateforme de développement JavaScript permettant de répondre à de nombreux besoins clients/serveurs grâce à la mise à disposition d’une API.

Les avantages et fonctionnalités de Node.js

Les centaines de milliers de modules ajoutés par les développeurs de la bouillonnante communauté permettent de s’inspirer et offrent la possibilité de faire pleins de choses sans partir de zéro en devant TOUT coder. Ce grand soutien de la communauté facilite le partage de bouts de code fonctionnels tout en ayant un accès complet au code source.

 

La grande force de Node.js : gestion asynchrone des événements

En permettant le développement dans le même langage de programmation à la fois côté client et serveur, les performances de Node.js ont de quoi séduire les adeptes de la rapidité. L’utilisation de Node en tant que serveur web le rend par ailleurs capable de traiter un gros volume de requête simultanément de manière efficace.

Cette performance élevée s’explique notamment par sa conception asynchrone permettant d’éviter les attentes. Avec Node, plusieurs requêtes peuvent être effectuées en même temps. Pas besoin d’attendre qu’une action longue soit terminée pour en lancer une autre !

Comparativement à PHP, cela permet un gain de temps considérable. En effet, PHP exécute les requêtes de façon séquentielle : le client attend la réponse du serveur avant de pouvoir lancer d’autres opérations. L’action A doit être terminée pour exécuter l’action B et ainsi de suite. Avec Node.js, le temps d’attente est réduit puisqu’il est orienté événement : il est donc capable d’exécuter plusieurs actions en même temps.

 

Modèle non-bloquant © OpenClassRooms

 

À ce titre, le service de paiement en ligne PayPal, qui a adopté Node.js, a rapporté que son nombre de requêtes reçues par seconde avait doublé et ainsi diminué le temps de réponse de 200 millisecondes, soit de 35%.

Un autre point fort de Node.js ? Les streams. Ils permettront par exemple de traiter un fichier alors même que son téléchargement n’est pas terminé.

Cette performance accrue permet également de relancer JavaScript dans la course du mobile-friendly alors que Google annonçait cette année le lancement de son format AMP, sommant les éditeurs de site mobile de débarrasser leur code de JavaScript, considéré comme peu performant.

 

Quand utiliser Node.js ?

Node.js présente un nombre de fonctionnalités impressionnantes pour favoriser l’expérience utilisateur dans un environnements multi-connecté. Ses domaines d’applications sont donc nombreux :

Nativement, Node.js supporte les websockets qui permettent la mise en place d’applications réactives face à un volume de requêtes importants à traiter en temps réel. Avec Node, la transmission de données au client est automatisée : une action effectuée par un utilisateur se répercute directement sur les autres utilisateurs. En d’autres termes, dès qu’une nouvelle information est disponible, elle est automatiquement mise à disposition.

Cela s’avère donc très utile pour des projets nécessitants du temps réel. Le temps réel : un concept qui change la donne. Il offre la possibilité de gérer et connecter efficacement un volume important de personnes. En 2013, le site e-commerce Walmart a par exemple utilisé Node.js avec réussite lors du Black Friday, le jour le plus important de l’année en termes de trafic e-commerce aux Etats-Unis.

Prenons l’exemple d’un chat. Au lieu d’une page se rechargeant automatiquement pour faire apparaître les nouveaux messages, la conversion s’affiche en temps réel. Très utile pour mettre en place un chat avec un support technique dans l’optique d’améliorer le service offert au client d’un e-commerce. À titre d’exemple, le chat et le moteur de recherche de Facebook sont partiellement développés avec Node.js.

Les entreprises confrontées au défi de développer des applications pour répondre à des changements rapides sont donc particulièrement concernées par Node.js. Réactivité, performance et capacité de supporter une volumétrie de requête importante sans serveur dédié font ainsi de Node.js une technologie à envisager pour la création d’un e-commerce.

 

Node.js séduit les grands acteurs du web

La fiabilité de Node.js fait débat au sein de la communauté des développeurs. Pourtant, de nombreuses entreprises l’ont déjà adopté.

En 2015, IBM faisait l’acquisition de StrongLoop, les constructeurs du très populaire projet open-source Express.js. Et d’autres grandes entreprises ont opté pour Node.js : Microsoft, IBM, Yahoo!, Netflix, Groupon ou encore PayPal qui, en 2013, migrait ses applications de Java vers Node.js.

Dernièrement, LinkedIn reconsidérait son infrastructure serveur mobile et passait ainsi de Ruby on Rails à Node.js. Résultats ? De meilleures performances (jusqu’à 20 fois plus rapide) et plus de scalabilité !

Du côté de Netflix, on se vante depuis la réécriture de son site en Node.js d’un gain de productivité et d’un affichage de page plus rapide. Le site d’achats groupés Groupon, passé de Ruby on Rails à Node.js, se targue quant à lui d’une diminution de 50% du temps de chargement de ses pages.

Et si ces exemples ne suffisent pas à vous impressionner, sachez que La NASA a récemment déclaré utiliser Node.js pour « développer des systèmes accompagnant les opérations spatiales actuelles et futures ». Pour organiser les sorties dans l’espace, rien que ça !

 

Frameworks Node.js

Après avoir installé Node.js, les développeurs ont le choix entre plusieurs frameworks pour les aider à développer des sites web rapides, scalables et en temps réel.

En générant les bases d’un projet, les frameworks permettent de ne pas partir de rien. Node.js regroupe un tas de frameworks extras, mais s’il ne fallait retenir que les frameworks Node.js les plus performants et populaires, ils seraient au nombre de quatre :

 

Rapide, aisé à utiliser et facile à apprendre en ayant une pratique JavaScript… Toutes ces raisons ayant poussé de grandes entreprises à franchir le cap font que Node.js mérite vraiment d’être pris au sérieux pour 2020.

Car oui, Node.js est bien parti pour rester.

Quitter la version mobile