Formation Node.js

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.

  • ES2015+ (dont modules ES2015)
  • Cœur de Node (event loop, flux…)
  • npm, modules et scripts
  • Express, middlewares et Pug
  • Passport.js
  • MongoDB & Mongoose
  • Web Sockets
  • Développement test-first (TDD)
  • Code isomorphe
  • Déploiement interne & cloud

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 apprenant·e·s 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, ODM, NoSQL, WebSockets…

Attention : le code source de la formation est intégralement en ES2015.

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.

Programme

  1. Jour 1 — Mise en jambes 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 »

    ES2015+

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

    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
  2. 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

    • packaging de modules
    • rechercher des modules
    • installer en local ou en global
    • dépendances de production et de développement
    • la fin des conflits de version
    • 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

    • Topo sur les tests automatisés : unitaires, intégration…
    • Modules d’assertion : assert et Chai
    • Un harnais de tests riche avec Mocha
  3. 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
    • Pistes pour des tests automatisés multi-navigateurs
    • Déboguer du code Node avec un vrai débogueur moderne

    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 Pug (Jade)
    • Layouts
    • Mixins
    • Modèles de données
    • Persistence MongoDB avec Mongoose
    • Authentification avec Passport

    Profiter des modules dans un navigateur

    • Webpack
    • Partage de code entre les couches serveur et client
  4. 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

    • 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
    • Groc

    Quelques petits modules fréquemment utiles

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

    Déployer du code Node

    • 12 Factors
    • Sur mon propre serveur
    • Sur Heroku
    • Sur Azure
    • Monitoring interne avec PM2
    • Monitoring externe avec NewRelic

Prochaines sessions

  • du 26 au 29 septembre 2017 - Paris (2 places restantes !) Attention
  • du 21 au 24 novembre 2017 - Paris (complet) Attention

Tarifs

Vous inscrivezTarif unitaire
1 à 2 apprenant·e·s2 000 € HT
3 à 5 apprenant·e·s1 800 € HT
6+ apprenant·e·s1 600 € HT
Tarif fidélité1 700 € HT
Demandez votre convention !

Public visé et pré-requis

Une connaissance minimale 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.

C’est particulièrement vrai depuis février 2016, puisque la version 2016 de la formation Node.js utilise exclusivement ES2015+, et que très peu d’apprenant·e·s auront déjà une connaissance de cette version du langage : le premier jour explore donc celui-ci en détails, et nivelle l’auditoire par le haut.

Toutefois, il peut être utile de « préparer le terrain » en amont pour fluidifier l’acquisition de connaissances une fois en formation. Les futur·e·s apprenant·e·s auront alors tout intérêt à puiser dans cette liste de contenus de qualité compilée par Christophe ; pour ES2015, une liste spécifique existe.

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

Livrables

Les apprenant·e·s reçoivent, en début de session, 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 accessibles aux Personnes à Mobilité Réduite.

Situé à Paris, près de Nation, ils sont accessibles via pas moins de 5 lignes de métro, 1 ligne de RER et 5 lignes de bus :

  • Métro Ligne 2 Philippe-Auguste ou Alexandre Dumas
  • Métro Ligne 9 Charonne ou Rue des Boulets
  • Métro Ligne 8 Faidherbe-Chaligny
  • Métro Ligne 1 Ligne 6 RER Ligne A Nation
  • Bus Ligne 26 Ligne 57 Ligne 86 Nation
  • Bus Ligne 56 Charonne-Voltaire ou Boulets-Montreuil
  • Bus Ligne 76 Charonne-Philippe-Auguste
Delicious Insights

83 avenue Philippe-Auguste
75011 Paris

Voir sur Google Maps

On trouve également nombre de parkings alentour.

  • Chaque apprenant·e 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 et, pour les cas exceptionnel, une infrastructure Ethernet filaire.
  • Vous n’êtes pas en région parisienne et cherchez un hébergement ? Pourquoi ne pas passer par airbnb ? Ça existe même pour les entreprises.
  • Les formations Node.js nécessitent quelques installations préalables sur votre machine : toutes les instructions sont ici pour OSX, Linux et Windows.

  • Les formations vont de 4 à 10 apprenant·e·s.

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

  • 9h15Accueil, petit déjeuner (boissons chaudes et fraîches, viennoiseries)
  • 9h30Début de la journée
  • 12h30Déjeuner (inclus dans le prix)
  • 13h45Reprise
  • 16h15Pause café
  • 16h30Reprise
  • 18hFin de la journée

Vous pourrez retrouver toutes les informations sur les modalités d’inscription et de paiement, l’annulation et le remboursement dans nos Conditions Générales de Vente, sans oublier notre règlement intérieur.


Nos locaux, pour nos formations inter-entreprise (cliquez pour agrandir) :

Formateur

Christophe Porteneuve

Christophe Porteneuve

Christophe conçoit des pages web depuis 1995. Co-créateur du premier portail JSP en Europe, en 1999, il passe par J2EE avant de tomber dans Ruby, Rails puis Node.

Auteur du best-seller « Bien développer pour le Web 2.0 » chez Eyrolles, il a également écrit la référence « Prototype and script.aculo.us » chez Pragmatic Programmers, des articles dans divers magazines en ligne (notamment le très respecté A List Apart), et il est speaker pour plusieurs conférences petites et grosses.

En France, Christophe jouit d’une solide réputation d’expertise dans les univers du web front (notamment JavaScript), de Node.js, de Git et de Rails.

Christophe est le fondateur et directeur technique de Delicious Insights.

Témoignages

  • Super formation. La capacité du formateur à trouver quasi-instantanément d’où vient le bug est assez bluffante ! Tous les points abordés le sont avec brio. […] J’ai trouvé comme lors du JS Total le codage de l’application fantastique.

  • Excellente formation, claire, précise et utile. Le rythme est soutenu et il faut s’accrocher car on passe en revue énormément de concepts, mais le formateur est vraiment doué pour transmettre son savoir et ne manque pas de pédagogie.

    Le coût de la formation, vis-à-vis de la qualité de la prestation, est vraiment abordable et intéressant, même en étant freelance (sans subventions ou autre aide à la formation).

    Formation réellement agréable, avec des rires, de la réflexion et de bon repas ! On en ressort confiant et rassuré, attendant juste de mettre en pratique tous les points abordés. Ca fait très « message marketing » mais je la conseille vivement 😊

    Julien Pouillard – Effigie Créations
  • Cette formation était géniale et très en avance sur son temps. Le formateur est vraiment un très bon pédagogue, le rythme était parfait. J’ai recommandé cette formation à beaucoup d’amis à moi.

  • On ne sort pas de cette formation seulement avec une meilleure compréhension de Node.js, mais également avec les outils et les principes d’une réelle utilisation en production. Ajoutez à cela la localisation (Paris 11ème) des locaux très agréables et un formateur excellent et vous aurez les ingrédients d’une semaine riche que vous ne regretterez pas.

  • 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 !

  • 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…

  • Formation Node.js efficace et pertinente, je repars avec le sentiment d’avoir fait un bond en avant vers les technos de demain.

  • Je recommande vivement cette formation. Mais n’y allez-pas les mains dans les poches, préparez-vous : vous allez en prendre plein la tête. Du super contenu, un formateur hors-pair, une ambiance propice à l’apprentissage.