Node.js
Des bases solides pour développer des applications back-end en JavaScript
Ce que vous allez apprendre
- Comprendre l'architecture et les concepts fondamentaux de Node.js
- Maîtriser la programmation asynchrone, les événements et les streams
- Implémenter une gestion d'erreurs robuste
- Créer des applications réseau (serveurs TCP/UDP et HTTP/HTTPS)
- Développer des back-ends web RESTful en utilisant des frameworks populaires comme Express.js
- Interagir avec les systèmes de fichiers et les bases de données
- Packager et déployer des applications Node.js
Prérequis
- Avoir suivi le cours JavaScript: Les fondamentaux du langage ou avoir des connaissances équivalentes
Public cible
- Développeurs, Intégrateurs, Architectes logiciel, Chefs de projet technique
Programme de la Formation
10 modules pour maîtriser les fondamentaux
Sujets abordés
- →Qu'est-ce que Node.js ?
- →Les outils: node et npm
- →Environnement de développement Node.js
- →Notions d'architecture Node.js: IO, asynchrone, non bloquant, concurrence, event-loop, scalability
Activités
Installation de Node.js et d'un environnement de développement
Démonstration de la event loop à travers un premier programme asynchrone / non-bloquant
REPL
Sujets abordés
- →Architecture de Node.js basée sur les évènements
- →Event et EventEmitter
- →Synchrone vs Asynchrone
- →Gestion des évènements multiples ou unique
- →Gestion des erreurs
Activités
Développement d'EventEmitter personnalisé
Sujets abordés
- →Exemples de données streaming gérées par Node.js
- →Les différents types de Streams
- →Buffers internes
- →Pipelines
Activités
Consommer une stream Readable (http, fs)
Ecrire dans une stream Writable (fs)
Exploiter une stream Duplex (net.Socket)
Utiliser une stream Transform (zlib)
Sujets abordés
- →Les différents types d'erreurs
- →Gestion d'erreur dans les APIs synchrones
- →Gestion d'erreur dans les APIs asynchrones
- →Assertions
- →Logging via l'API Console
- →Debugger un programme Node.js
Activités
Gestion d'erreur dans les APIs synchrones
Gestion d'erreur dans les APIs asynchrones
Débugger un programme Node.js dans son IDE ou dans Chrome
Sujets abordés
- →Object Global et scope inter-modules
- →Objects accessibles globalement
- →Modules, scopes et gestion des fichiers
- →Core modules
- →Module main
- →Algorithme de chargement des modules et cache de modules
- →NPM et modules tiers
Activités
Utilisation de l'objet Global
Objets accessibles globalement: process
Usage de core modules: timer, OS, Util, Path, ...
Création de module interne à l'application
Création d'un projet Node.js via NPM et installation de modules populaires
Sujets abordés
- →Module Net pour création de serveurs et clients TCP
- →Module UDP/Datagram pour création serveurs et clients UDP/Datagram
Activités
Création de clients / serveur TCP
Création de clients / serveur UDP/Datagram
Sujets abordés
- →Modules http, https et http/2 pour la création de serveurs et clients http, https et http/2
- →Module url pour exploiter les requêtes http
Activités
Création de serveurs et clients http, https et http/2 dans le cadre d'un site web
Création de serveurs et clients http, https et http/2 dans le cadre d'un webservice RESTFul
Sujets abordés
- →Le module fs et sa proximité avec POSIX
- →APIs synchrones vs APIs asynchrones
Activités
Interactions avec le système de fichiers via APIs synchrones et asynchrones
Sujets abordés
- →Gestion des données avec bases de données Relationnelles (Mysql) ou NoSQL (Mongo, Redis)
- →Gestion du middleware (connect, expressjs)
- →Gestion de templates (ejs)
Activités
Création d'un back web statique et dynamique avec express.js
Création d'une API RESTFul avec express.js
Sujets abordés
- →NPM: les principales commandes
- →NPM: packager un module
- →Différents modes de déploiement d'un projet Node.js
- →Modules Forever et PM2
Activités
Packager une librairie
Dockerizer une application web Node.js
Processus Qualité
L'engagement de SFEIR Institute : une démarche d'excellence pour garantir la qualité et la réussite de toutes nos formations. En savoir plus sur notre démarche qualité
- Lectures / Apports théoriques (Slides) — Présentation de concepts via des supports visuels (PowerPoint, PDF).
- Démonstration technique (Démos) — Le formateur réalise une manipulation ou une procédure devant les apprenants.
- Laboratoires dirigés (Labs) — Mise en pratique guidée sur logiciel, machine ou environnement technique.
L'atteinte des objectifs de la formation est évaluée à plusieurs niveaux pour garantir la qualité de la prestation :
- Évaluation continue des acquis : Vérification des connaissances tout au long de la formation via des méthodes participatives (en fonction de la formation: quiz, exercices pratiques, mises en situation) sous la supervision du formateur.
- Mesure de la progression : Dispositif d'auto-évaluation comparatif comprenant un diagnostic initial pour situer le niveau de départ, suivi d'une évaluation finale pour valider l'évolution des compétences.
- Évaluation de la qualité : Questionnaire de satisfaction en fin de session pour mesurer la pertinence et l'efficacité de la formation ressentie par les participants.
Prochaines sessions
Former plusieurs collaborateurs
- Tarifs dégressifs (plusieurs places)
- Session privée ou sur-mesure
- En présentiel ou à distance