Node.JS est un projet open-source se basant sur le moteur V8 de Chrome, qui permet d'exécuter du JavaScript côté serveur, contrairement à ce qu'on a l'habitude de voir avec le JavaScript côté client. Il s’agit d’un interpréteur JavaScript exécutable, et enrichissant le langage avec sa propre API. Sa spécificité vient de son API, entièrement orientée vers le non bloquant, qui permet d'écrire des applications avec d'excellents temps de réponse. Cette formation Node.js perfectionnement de 3 jours, vous permettra de maîtriser les concepts avancés de Node.Js , d’un point de vue objets avancés JavaScript, programmation fonctionnelle, paradigme asynchrone, ES6 mais aussi performance et qualité des applications 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
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
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 ;
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
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
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 !
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 ;
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
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 !
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
Mises à jour des modules (Comment ? Quand ?) : npm-check
Rechercher des modules
Processus enfants et clusters
Que faire avec NodeJS quand on utilise un MVC ?
NodeJS versus Python : lequel choisir ?
Où utiliser NodeJS ?
Discussion libre
→ Formation Svelte et SvelteKit | en ligne
→ Formation React.js | En ligne | Montréal | Québec |