Introduction à la formation Node.JS
Présentation de Node JS :
Qu’est ce que NodeJS ?
Pourquoi Node JS ?
Le Single Thread Event Loop
Code bloquant / Code non bloquant : Intérêts
Inconvénients / Avantages
Installation de NodeJS
Utilisation du REPL / Découverte du langage
Specifications ECMA Script ;
Déclarations de variables (var, let, const) / Fonctions arrows
Déclarations de d’objet JSON simplifiés
Déstructurations de variables
Nouvelles fonctions itératives : Array.flat, Array.flatMap, Object.fromEntries
Programmation Asynchrone :
Appréhender la programmation asynchrone avec Async, Await
Gérer les boucles asynchrones avec déclenchements parallèles (Promise.all())
et séquentiels (resolve / reject)
Utilisation de util.promisify
Atelier pratique : Utilisation de File System pour automatiser des copies de fichiers ;
Atelier pratique : Paginer une longue liste de fichiers ;
Les modules :
Déporter des json config et fonctions dans des fichiers séparés
Utilisation npm init / npm install
Built-in modules
Utilisation de require()
ESM module loader : Import / export de modules Python-style
Exercice : Connaître le contenu de photos chargée dans mon application grâce à l’IA
Exploration et utilisation de modules populaires + Accès aux bases de données :
Utilisation de nodemon
Exposer des APIs avec Express / Utilisation des Routers
Créer un espace authentifié avec Passport
Accès aux bases de données avec MySQL et MongoDB
Atelier pratique : Créer un backOffice CRUD de gestion des séries tv préférées
Communication Client / Serveur en temps réel :
Les limitations à l’utilisation des APIs
Introduction au concept de Socket ? et pourquoi les sockets ?
Atelier pratique : Création d’un outil de Tchat avec Socket.io !
Utilisation des streams :
Notion d’évènement (Event, EventEmmitter);
Gestion des readStream et writeStream
La fonction pipe
Atelier pratique : Mise à jour d’une barre de progression en temps réel pour la copie ou le chargement d’un fichier lourd ;
Communication Inter-process en temps réel :
Le protocole AMQP : Introcution et historique
Terminologie : Producer > Exchange > Queue > Consumer
Les types d’Exchanges
Présentation, installation et intégration de Rabbit MQ
Les équivalents Cloud : PubSub de Google Cloud Platform
Node JS et la Blockchain :
Introduction au concept de blockchain ? À quoi ça sert ?
Création de class et de constructeur dans Node JS
Le module object-hash
Miner sa propre devise avec la blockchain
Logger les transactions
L’équivalent avec Bitcoin
Autres usages de la Blockchain
Atelier pratique : Mise en service d’une nouvelle Crypto-currency the GreatCoin !
Les tests avec NodeJS
Introduction : les 3 types de tests (unitaires, d’intégration, fonctionnels)
Tests unitaires avec Mocha / Assert, Chai / Spy, Mock et Stubs avec Sinon
Tests fonctionnels avec les headless browsers
Tests d’intégration avec npm
Maintenance, Audit et performances
Mises à jour des modules (Comment ? Quand ?) : npm-check
Rechercher des modules
Processus enfants et clusters
Conclusion :
Que faire avec NodeJS quand on utilise un MVC ?
NodeJS versus Python : lequel choisir ?
Où utiliser NodeJS ?
Discussion libre