Accueil / Développer avec NodeJS
Développer avec NodeJS
Durée : 3 jours
Tarif Inter : 1600 €
Tarif sur mesure : Nous consulter
Référence : 3DNO
Programme
Public & Pré-requis
Organisation
Présentation
Node.js est devenue une plate-forme de développement d’applications mature et réputée. Pour les applications Web, Node.js permet de plus d’utiliser les compétences JavaScript du monde du Web coté serveur. Associé à tout l’écosystème de modules (librairies) disponibles, il est devenu un acteur majeur dans les plate-formes de développement légères.
Objectifs
- Connaître l’architecture et le fonctionnement de Node.js
- Savoir installer et configurer Node.js et son écosystème de plugins
- Comprendre les concepts d’une architecture asynchrone
- Savoir créer des applications Node.js
- Mettre en oeuvre les meilleures pratiques de développement et d’utilisation de Node.js
Programme
-
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
-
Architecture de Node.js :
- Asynchronisme
- Programmation par callbacks
- L’event loop
-
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
-
L’asynchrone en détails :
- 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
-
La gestion des streams :
- Description de Streams2
- Buffers
- Type de flux
- Pipelining
- Object mode
- Les outils : through2, trumpet, JSONStream…
- Gulp
-
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
-
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
-
Node.js en mode Cluster :
- Utilisation du module cluster
- Master et workers
- Messaging
- Gestion des erreurs
-
Au delà de Node.js :
- Stack MEAN
- Déploiement de Node dans le Cloud
- Exemple avec AWS, Heroku
- Monitoring avec pm2 et NewRelic