AJC FORMATION : 08. Node JS - Développement d'applications web
Organisme
75009 PARIS 9Voir toutes ses formationsAutres organismes proposant cette formation
Durée
Modalités
- Classe virtuelle
- Présentiel
Les participants réalisent tout au long des exercices, QCM et/ou cas pratiques. En fin de formation, les acquis sont vérifiés
Prix
Public
Développeurs, architectes techniques, chefs de projet Web…
Pré-requis
Avoir des connaissances pratiques du langage Javascript.
Objectifs pédagogiques
- Comprendre les principes clés de Node.js
- Se familiariser avec les composants de la plateforme logicielle
- Installer et configurer un serveur Node.js
- Mettre en œuvre les concepts de la programmation événementielle et asynchrone
- Manipuler l'API de Node.js
- Appliquer les bonnes pratiques à un projet Vue.js
Programme détaillé
Rappel des bonnes pratiques JavaScript
- Visibilité des variables
- Structuration de code
- Les Closures
- Objets et prototypes
- Lodash
Introduction à Node.js
- Origine du projet
- Le moteur d’interprétation Chrome V8
- La notion de gestion d’événements
- Les différents usages
- Overview de l'écosystème de plugins
- Installation
- Un tout premier exemple
Travaux pratiques : Installation de l'environnement et choix des outils
Architecture de Node.js
- Asynchronisme
- Programmation par callbacks
- L’event loop
Travaux pratiques : Premier programme en Node.js
Modules et gestion de dépendances
- L’approche modulaire
- NPM et manipulation des modules
- Le fichier package.json en détail
- Modularisation de son code
- Modules noyaux: console, process, os, fs, path et util
- Publier un module sur NPM
Node et le Web : HTTP, Connect & Express
- Périmètre du module HTTP
- Connect et ses middlewares
- Serveur Web avec Express
- Générer un serveur Express generator
- Router les requêtes
- Gestion d’une requête et création d’une réponse
- Utiliser un moteur de template
- Ouverture à Passport et Hapi
Travaux pratiques : Création d'une API REST de Météo
L’asynchrone en détail
- Callback Hell & Pyramid of Doom
- Le module async
- Les promesses
- Exemples d’enchaînement et de parallélisation
- Gestion des erreurs
Communication temps réel
- Intégration des WebSockets HTML5
- Socket.io
- Gestion des transports
- Intégration côté client et côté serveur
Travaux pratiques : Mise en oeuvre de communications en temps réel en utilisant des sockets web
La gestion des streams
- Description de Streams2
- Buffers
- Type de flux
- Pipelining
- Object mode
- Les outils : through2, trumpet, JSONStream…
- Gulp
Travaux pratiques : Manipuler des fichiers en asynchrone
Liaison avec la persistance des données
- Approche via le driver ou un ORM
- Intégration avec une base de données relationnelle
- Modules d’abstraction SQL
- Le module Sequelize
- Intégration avec une base de données NoSQL
- Le module Mongoose
Travaux pratiques : Mise en place d'un ORM avec MySQL
Outillage et Usine Logicielle
- Outils d’édition
- Utilisation des logs
- Outils de debogage
- Tests unitaires avec Mocha
- Modules Chai et Sinon
- Nodemon
- L’orchestration des tâches (build) avec Grunt
- Intégration dans le serveur d’intégration Jenkins
Travaux pratiques : Mise en place d'une stratégie de Tests
Node.js en mode Cluster
- Utilisation du module cluster
- Master et workers
- Messaging
- Gestion des erreurs