[wpms_breadcrumb reverse="0"]
Internet et Mobilité

Node.js 

Reference : IM14
3 jours - Nous consulter
Prochaines sessions

Nous consulter.

Node.js 
Objectifs

  • Savoir dans quel cas choisir Node.JS,
  • Ecrire des applications pour Node.JS,
  • Appréhender l’écosystème Node.JS,
  • Mettre en oeuvre les bonnes pratiques de développement avec NodeJS.

Pré requis

  • Maîtrise de JavaScript et connaissance du terminal et du développement web backend (type PHP ou Java web)

Modalités pédagogiques

Cours dispensé en mode présentiel avec une alternance d’apports théoriques et méthodologiques, et de mises en situations pratiques

Public visé
Inscription

Programmes de Node.js 

Présentation et concepts Node.JS

  • Installation et utilisation du REPL : présentation nvm & co
  • JavaScript côté serveur : démonstrations et premiers travaux pratiques
  • La « single-threaded event loop »
  • API non bloquante : intérêts

La programmation asynchrone

  • Les avantages et pièges à éviter
  • Gérer la soupe de callbacks avec Async

Les modules NODE.JS

  • Description
  • Fonctionnement
  • Structure

Écrire un serveur avec Node.JS

  • Présentation
  • Démonstration

Se simplifier la vie avec Express

  • Le routage
  • La vue: choisir le bon moteur de template
  • Gérer les fichiers statiques

Les librairies d’accès aux bases de données

  • Présentation

NoSQL: MongoDB et Redis

  • Modélisation avec NoSQL
  • Différentes utilisations de Redis
  • Implémentation du modèle

Les tests avec Node.JS

  • Tests unitaires avec Mocha (atelier)
  • Tests fonctionnels avec les headless browsers
  • Intégration avec npm

Communication en temps réel

  • Définition et problématiques
  • Les technologies à disposition
  • Intégration des WebSockets HTML5 avec Socket.IO

Travaux pratiques

  • Exercices sur les server-side events, websockets avec socket.io

Aller plus loin avec SOCKET.IO

  • Description
  • Manipuler la session utilisateur
  • Regrouper les sockets

Communication inter-process en temps réel

  • Le pub/sub avec Redis
  • AMQP dans Node JS
  • Présentation RabbitMQ et ZeroMQ
  • Event-loop distribuée

Gestion de la performance avec Node.JS

  • Les Cluster
  • Utiliser tous les processeurs de sa machine
  • Cluster et données partagées
  • La solution haute performance Redis
  • Bonus spécial troll
  • Comparaison avec l’équivalent Apache/PHP

Conclusion et conseils

  • Synthèse des bonnes pratiques de développement NodeJS
  • Veille : comment faire le tri dans les milliers de modules disponibles ?