Node.js – appelons-le Node dès à présent – est né dans le cerveau de Ryan Dahl, ancien étudiant sans le sou et au parcours informatique atypique. Son talent a été de s’obstiner à résoudre un problème d’expérience utilisateur fréquent sur le web : l’attente devant un navigateur web figé. Son but ? Rendre possible et facile la création de barres de progression dans les navigateurs Web.
J’ai utilisé Node pour la première fois en 2010, par curiosité.
On en était alors qu’à la version 0.4
.
Pouvoir créer mon propre serveur HTTP me semblait étrange, moi qui étais un habitué du duo PHP et Apache.
L’effet wahou était pourtant là : une installation en quelques secondes, quelques lignes de JavaScript et j’avais une API REST câblée avec une base de données CouchDB pour impressionner mes collègues de l’agence Clever Age.
Je bascule dans un contexte startup fin 2011 : nous sommes quatre développeurs avec des bagages différents.
Nous partons sur Node que notre hébergeur Alwaysdata installe sans encombre.
Nous avions la sensation de progresser rapidement.
Nous allions réellement vite.
JavaScript était devenu notre langue commune grâce à Node.
Depuis, de nombreuses entreprises ont communiqué sur leur adoption de Node : Paypal, LinkedIn, eBay, Airbnb, British Gaz, Allociné, The New York Times, Yahoo!, Microsoft, Mozilla, Flickr ou encore Twitter. Leur utilisation couvre aussi bien l’outillage métier que les transactions bancaires, des serveurs LDAP, des web services ou des sites web.
Pourtant, nombre d’ouvrages et de ressources se focalisent uniquement sur le dernier framework ou librairie à la mode en passant à côté de l’essentiel.
Node est un environnement plaisant et agréable à utiliser, c’est ce que j’aime et aspire à partager avec vous au cours des prochaines pages de cet ouvrage.
Node est mon outil de travail principal depuis 2011. Outillage, tests, API, applications, prototypes et automatisation. Sa simplicité, son architecture et l’emphase sur la modularité m’ont fait progresser dans l’usage de JavaScript ainsi que sur la compréhension bas-niveau des systèmes d’exploitation.
Je souhaite offrir un contenu moins technique que d’ordinaire, plus pratique et encourageant la bidouille : le livre lui-même peut être installé avec Node, lu et pratiqué dans un shell.
Je souhaite aussi partager les principes clés de Node et de la programmation JavaScript. Ces principes traversent le temps et vous donneront, je l’espère, un appétit et des bases plus solides pour créer de petits programmes, faire un prototype rapide ou déployer une application complète.
Enfin, l’écriture de ce livre est également pour moi l’occasion d'apprendre de mes pairs, de leurs heures d’expérience en tant que formateurs, d’explorer des sujets qui me font peur et sur lesquels je ne me sens pas à l’aise.
Indirectement, je veux déconstruire la posture de l’expert et du lecteur en ouvrant le contenu pendant le processus d’écriture, dans un endroit où éditeur, lecteurs et auteurs apprennent les uns des autres.
Réponse courte : à tout le monde. Vraiment.
Réponse informelle : à toute personne curieuse ou souhaitant apprendre ou s’améliorer en programmation, sans forcément trop savoir par où commencer. Je crois fermement qu’apprendre à programmer n’implique pas de faire de la programmation son métier ni de pratiquer sans erreur – on peut avoir envie de découvrir par plaisir, par envie de comprendre ses pairs ou pour engager une conversation avec ses collègues.
Réponse formelle :
-
à des personnes dont la programmation est le métier mais pratiquant peu ou pas assez JavaScript ;
-
à des personnes adeptes du développement front-end et cherchant à mieux s’outiller ;
-
à des personnes non-techniques qui chercheraient à prototyper une idée d’application dans le cadre d’un projet perso ou d’une startup ;
-
à des personnes souhaitant introduire de nouvelles pratiques dans leur équipe ;
-
à des personnes cherchant à faire de JavaScript une langue commune entre le back-end et le front-end de leurs applications.
Cet ouvrage a été conçu pour être lu dans deux ordres : séquentiel, comme une histoire et transversal, en fonction de vos envies.
Cette édition se compose de neuf chapitres :
-
Histoire, écosystème et gouvernance
Nous apprendrons d’où vient Node et qui sont les acteurs participant à son histoire. -
Installer, mettre à jour et développer
Nous apprendrons à être autonome pour installer Node.js sur notre ordinateur ou un serveur, se tenir au courant des mises à jour et jongler entre différentes versions. Ce sera aussi l’occasion de découvrir des outils confortables pour écrire du code. -
Jouer avec JavaScript
Nous apprendrons à comprendre les différences entre JavaScript, ECMAScript, le DOM et Node.js. Ce sera aussi l’occasion de revoir les bases du langage pour se sentir plus à l’aise. -
Jouer avec Node.js
Nous apprendrons à manipuler des scripts et des modules Node.js : les notres, ceux fournis par Node et ceux de la communauté. -
Jouer avec npm
Nous apprendrons à tirer parti de l’outil livré par défaut avec Node.js. Ce sera l’occasion de s’amuser à créer nos propres outils dignes d’artisans du logiciel. -
Déployer notre code
Nous apprendrons à déployer notre code le plus tôt possible pour célébrer notre premier programme ! -
Créer une application web
Nous apprendrons à créer une application web en partant de zéro, en utilisant un framework puis en parlant à une base de données. Bienvenue dans l’odyssée d’une requête HTTP ! -
Créer un outil en ligne de commande
Nous apprendrons à rendre du code métier fonctionnel dans un terminal. La ligne de commande ne paraîtra plus aussi austère après ça. -
Créer une application front-end
Nous apprendrons à utiliser la richesse de l’écosystème npm et à profiter des modules pour écrire des applications front-end de qualité.
Des annexes complètent l’ouvrage avec une sélection de modules npm et des exemples de design patterns. De quoi élargir notre perception et écrire du code plus robuste.
Cet ouvrage est également consultable sur cinq supports :
-
livre, le format par excellence — vendu en librairie et sur Internet ;
-
e-book, idéal si vous disposez d’une liseuse numérique ;
-
web, idéal pour bénéficier d’exemples interactifs, des exemples vidéo et d’un contenu à jour ;
-
npm, idéal pour apprendre Node.js par la pratique ;
-
source, idéal pour proposer ou corriger le contenu et apprendre comment l’ouvrage est constitué.
Tip
|
Ressources Contenu en livre libre accès
Le contenu de cet ouvrage est géré grâce à la plate-forme collaborative GitHub. Cette plate-forme me permet d’obtenir des retours, idées et suggestions. |
Cet ouvrage a été rédigé sur près de quatre années – longue est la liste exhaustive des personnes à remercier. Longue aussi est la liste de celles et ceux à qui je dois m’excuser pour mes sautes d’humeur, mes absences ou mes passages à vide. Écrire est une activité que je trouve éprouvante et nécessite une attention particulière vis à vis de moi-même pour ne pas (trop) en souffrir.
Mes premiers remerciements vont à Noémie. Ta joie, tes encouragements et ta présence sont essentiels à mon équilibre. Ils me donnent confiance, m’inspirent et atténuent les peurs qui me paralysent.
Je remercie Karine, Laurène, Elsa et Alexandre d'Eyrolles pour cette opportunité. Je trouve que vous avez fait preuve d’une patience et d’une confiance infinies malgré tous ces rebondissements.
Je tiens à remercier mes anciens collègues de BBC R&D pour leur soutien, leur confiance et leur tolérance aux jeux de mots. Olivier, Sean, Katie, Chris N et Chris L : c’était un plaisir et un honneur d’être à vos côtés.
Certain·e·s d’entre vous m’ont beaucoup aidé de par leurs conseils, leurs relectures et leurs encouragements. Alors un grand merci Stéphane, Frank, Thierry, Boris, Béa, Efi, Alexandra, Thomas, Xavier, Bastien, Nicolas C, n1k0 et Loic.
J’ai organisé une résidence d’écriture itinérante de janvier à mars 2017. On m’a hébergé, nourri et parfois blanchi. Merci beaucoup beaucoup Maxime W, Brice F, Nicolas F, les gens du Yelloworking à Aix, Antoine F, les gens de la Coop à Grenoble, Cédric et Hélyette, Agnès, les gens de Mix-IT, les gens de la Cordée à Lyon, Maxime L, les gens de la Myne à Villeurbane, Clément D et Quentin A, les gens de Clever Cloud, Thomas M et Lilian M, les gens du ByteClub, Alexis J, les gens de Matlo, les gens du Fab Lab 127°, Arnaud R, Ismaël H et les gens de BetaGouv.
Bonne lecture,
— Thomas Parisot • https://oncletom.io