JS Attitude

« Je n’ai jamais rencontré un expert JavaScript au chômage »

Formation Node.js

Commentaires

Un monde nouveau

Sorti en 2009, Node.js a complètement révolutionné la perception de JavaScript et des infrastructures logicielles côté serveur. Extrêmement performant, agréable à l’emploi, doté d’un écosystème et d’une communauté extrêmement vigoureux, Node.js affiche désormais de nombreux très gros acteurs en production avec des capacités de montée en charge insolentes et beaucoup de success stories.

Objectifs

La formation Node.js vous donne toutes les clés pour bien démarrer avec Node.js tout en professionnalisant et industrialisant vos pratiques de développement JavaScript. Elle permet aux stagiaires de :

  • savoir installer et mettre à jour Node.js et npm,
  • découvrir, installer et mettre à jour des modules Node,
  • travailler efficacement avec Node au moyen d’un outillage permettant un cycle rapide de développement,
  • manipuler élégamment des agencements complexes de code asynchrone, notamment à l’aide du module async et des promesses,
  • connaître et exploiter au mieux les modules noyaux fournis avec Node,
  • comprendre et maîtriser des technologies pivots de Node telles que les événements et les flux,
  • structurer leur code dans le respect des meilleures pratiques Node, tant pour la partie serveur que côté client,
  • tester automatiquement leur code, au niveau unitaire mais aussi en intégration complète,
  • documenter leur code source de façon immédiatement utile et exploitable,
  • packager leurs applications en modules publiables,
  • traiter au mieux les problématiques courantes : serveur web, templating, ORM, NoSQL, WebSockets…

Attention : à partir de février 2016, le code source de la formation sera intégralement en ES6.

Il s’agit donc non pas d’une « simple » formation technique, mais véritablement d’un ensemble complet de savoir-faire qui donne non seulement les clés d’une fonctionnalité immédiate, mais aussi les moyens de produire du code maintenable et qualitatif sur la durée.

Public visé

Une connaissance décente de JavaScript est nécessaire, même si les aspects avancés seront revus en profondeur le 1er jour ; tout développeur web front utilisant déjà quotidiennement JavaScript, même si c’est essentiellement au travers de jQuery, a normalement les connaissances nécessaires. Toutefois, il peut être utile de « préparer le terrain » en amont pour fluidifier l’acquisition de connaissances une fois en formation. Les futurs apprenants auront alors tout intérêt à puiser dans cette liste de contenus de qualité compilée par Christophe.

Cette préparation est également très souhaitable pour un développeur back-end qui n’aurait jamais touché à JavaScript.

Programme

Le programme de la formation Node.js est le suivant :

Jour 1 — Mise en jambe Node et JavaScript avancé

On y découvre Node, son utilisation directe et son système de modules, mais on prend aussi le temps de voir ou revoir des mécanismes JavaScript avancés de structuration de code qui permettent de maintenir un niveau de qualité et de lisibilité élevé du code dans un contexte massivement asynchrone.

Bonjour Node !

  • Méthodes d’installation et de mise à jour
  • Node, l’historique en 5 minutes
  • Mon premier programme
  • Exécuter un fichier JS
  • Un exemple un peu plus riche
  • Shebangs et fichiers « exécutables »

ES6+

  • Rappels sur l’historique ES3, ES5, ES6…
  • Compatibilité native Node
  • Transpiling avec Babel
  • Expérimentation interactive et ressources d’approfondissement
  • Litéraux objets et nouvelle syntaxe de classes
  • Déstructuration
  • Rest et Spread
  • Valeurs par défaut
  • Template strings et Tagged template strings
  • let et const
  • Fonctions fléchées et préservation de portée lexicale
  • Modules ES6

Gestion des modules de Node

  • Modules configurables
  • Initialisation déportée
  • Modules Node
  • Chargeurs de modules et syntaxes alternatives
  • Chemins de recherche et détails de require

Programmation asynchrone

  • Callbacks
  • « Callback Hell » et « Pyramid of Doom »
  • Réduire l’imbrication à l’aide des déclarations
  • Les callbacks façon Node
  • Combinaisons complexes avec async.js
  • Promesses : principes, exemples et mise en œuvre native
  • Versions « promesses » d’API asynchrones usuelles
  • Async / await

npm (début)

  • packaging de modules
  • rechercher des modules
  • installer en local
  • dépendances de production et de développement
  • la fin des conflits de version

Jour 2 — Le cœur de Node

Node, ce n’est pas que des applications web avec Express ! Cette journée explore les modules noyaux, les mécanismes incontournables d’événements et de flux, et attaque la mise en place de tests automatisés, indispensables à l’industrialisation et à la qualité de notre code.

npm (suite)

  • installer en global
  • package.json en détail

Quelques modules noyaux

  • console
  • process et os
  • fs et path
  • util
  • Objets globaux
  • Revue rapide des autres modules noyaux

Événements

  • Le module events
  • EventEmitter
  • Intégrer une capacité événementielle à du code existant

Flux et buffers

  • Types de flux
  • Modes de fonctionnement et bascule entre modes
  • Buffers
  • Encodages de texte
  • Pipelining
  • Stream all the things!

Tester et déboguer (début)

  • Topo sur les tests automatisés : unitaires, intégration…
  • Modules d’assertion : assert et Chai
  • Un harnais de tests riche avec Mocha

Jour 3 — Une application web avancée

Tout en finissant d’explorer les tests automatisés, on réalisera une application web mettant en œuvre nombre de technologies incontournables et fortement associées à l’univers Node.

Tester et déboguer

  • Isolation des tests unitaires avec SinonJS
  • Tests d’intégration avec CasperJS
  • Pistes pour des tests automatisés multi-navigateurs
  • Déboguer du code Node avec un vrai débogueur moderne avec Node Inspector

Développer une application web en Node

  • Structure de l’application
  • La couche HTTP fournie par Node
  • Express et Connect : présentation, installation et configuration
  • Une première page
  • Réagir aux changements de code avec nodemon
  • Templating avec Jade
  • Layouts
  • Mixins
  • Modèles relationnels et ORM
  • Persistence MongoDB avec Mongoose
  • Authentification avec Passport

Profiter des modules dans un navigateur

  • Brunch
  • Partage de code entre les couches serveur et client
  • Browserify

Jour 4 — Des outils en plus et le déploiement en production

Cette 4ème et dernière journée finalise l’application web, voit comment la documenter utilement, passe en revue quelques modules supplémentaires fréquemment utiles et termine en explorant les options de déploiement en production.

Développer une application web en Node (fin)

  • Persistence ultra-rapide de données temporaires avec Redis
  • Connexions client/serveur temps réel avec les Web Sockets

Documenter le code de façon utile

  • Types de documentation de code
  • Sources annotés
  • Docco

Quelques petits modules fréquemment utiles

  • underscore
  • mkdirp
  • debug
  • event-stream
  • nconf
  • moment
  • request
  • colors
  • optimist et commander
  • eventemitter2

Déployer du code Node

  • 12 Factors
  • Sur Heroku
  • Sur StrongLoop / LoopBack
  • Sur AWS
  • Sur mon propre serveur
  • Monitoring interne avec pm2
  • Monitoring externe avec NewRelic

Ils ont adoré…

A boosté mon apprentissage en m’emmenant là où je n’avais pas encore eu l’occasion d’aller… Node.js tourne à merveille… L’aventure ne fait que commencer… L’écosystème est extraordinaire… Les résultats ont été à la hauteur des espérances… Node.js est définitivement la technologie à connaître !

Lire le témoignage complet de Jérémy Dierx (janvier 2014)

Techno très prometteuse… Grande qualité technique… Modules fantastiques… Très bénéfique pour n’importe quel projet web… Tout s’éclaire… La formation était très complète et a pris tout son sens… Découvrir Node donne un vraiment un coup de boost en tant que développeur…

Lire le témoignage complet d’Étienne Voilliot (avril 2014)

Livrables

Les stagiaires reçoivent, chaque début de journée, l’ensemble des diapositives du support de cours au format web, afin de pouvoir faciliter leur suivi du plan de cours.

Après la session, ils reçoivent par ailleurs, avec un e-mail de debrief très fourni et riche en ressources, une archive de référence, contenant les codebases finalisées, entièrement documentées et testées, les slides de toute la formation et diverses ressources complémentaires.

Aspects logistiques

La formation se déroule dans une salle privative climatisée, lumineuse, fonctionnelle et très confortable. L’ensemble des locaux sont facilement accessibles en transports en commun et classés ERP, notamment accessibles aux Personnes à Mobilité Réduite.

Delicious Insights
83 avenue Philippe-Auguste
75011 Paris

Situé à Paris, près de Nation, il est accessible via pas moins de 5 lignes de métro, 1 ligne de RER et 5 lignes de bus :

  • Métro : Philippe-Auguste, Alexandre Dumas (ligne 2), Charonne, Rue des Boulets (ligne 9), Faidherbe-Chaligny (ligne 8), Nation (lignes 1, 6)
  • RER : Nation (ligne A)
  • Bus : Charonne-Voltaire ou Boulets-Montreuil (56), Charonne-Philippe-Auguste (76), Nation (26, 57, 86)

On trouve également nombre de parkings alentour.

Afficher Delicious Insights sur une carte plus grande

Chaque stagiaire amène son propre poste de travail ou ordinateur portable.

L’accès internet est assuré par une connexion fibre très haut débit. La salle fournit un accès Wi-Fi.

Vous n’êtes pas en région parisienne et cherchez un hébergement ? Pourquoi pas passer par airbnb ?

Les formations vont de 4 à 10 stagiaires.

Les horaires indicatifs de la formation, pour un total de 7 heures d’atelier par jour soit 28h de formation, sont :

  • 9h15 – Accueil, petit déjeuner (boissons chaudes et fraîches, viennoiseries)
  • 9h30 – Début de la journée
  • 12h30 – Déjeuner (inclus dans le prix)
  • 13h45 – Reprise
  • 16h15 – Pause café
  • 16h30 – Reprise
  • 18h – Fin de la journée

Prix indicatifs

Les tarifs inter-entreprises sont dégressifs en fonction du nombre de personnes au sein de votre propre convention (et non du nombre total d’inscrits).

Le tarif fidélité (−15%) peut être demandé par tout client ayant réglé au moins 1500€ HT sur les 12 mois glissants précédant la signature de la convention de formation.

Hors dates exceptionnelles, la formation Node.js est normalement proposée pour 4 jours aux tarifs suivants :

  • 1 ou 2 personnes : 2 000€ HT par personne.
  • 3 à 5 personnes : 1 800€ HT par personne.
  • À partir de 6 personnes : 1 600€ HT par personne.
  • Tarif fidélité : 1 700€ HT par personne.

Prochaines sessions

  • mardi 11 octobre 2016 → vendredi 14 octobre 2016
  • mardi 6 décembre 2016 → vendredi 9 décembre 2016

Demander une convention de formation

S’inscrire

Il vous suffit de remplir une demande de convention.

Nous vous invitons à vérifier les prochaines dates en encart sur ce site (ou juste ci-dessus). Nous proposons pour l’instant des sessions Node.js inter-entreprises environ une fois par trimestre, ce rythme pouvant passer à une fois toutes les 6 semaines si la demande le nécessite.

En savoir plus

Vous pourrez retrouver toutes les informations sur le formateur, les modalités d’inscription et de paiement, l’annulation et le remboursement, et enfin le règlement intérieur, dans la page des Informations Générales.

Commentaires

Ils nous font confiance : Kelkoo, MisterGoodDeal, PriceMinister, Blablacar / Comuto, Sarenza, Voyages-SNCF, LeMonde.fr, Fnac DIRECT, 20minutes, Orange, l’OCDE, Cisco, Alcatel-Lucent, Dassault Systèmes, EADS, Atos, Lagardère Interactive, Lesieur, L’Occitane en Provence, Météo France, 4D, Securitas, Digitas, Vivaki, Fullsix, Ekino, TBWA \ Paris, Valtech, Is Cool Entertainment, Open Wide…