Node.js
Sorti en 2009, Node.js a complètement révolutionné la perception de JavaScript et des infrastructures
logicielles côté serveur. Extrêmement performant, agréable à l’emploi, doté d’un écosystème et d’une
communauté extrêmement vigoureux, Node.js affiche désormais de
nombreux très gros acteurs en production avec des capacités de
montée en charge insolentes et beaucoup de success stories.
Découvrez l’édition 2018 de notre formation Node.js, largement réécrite pour mettre l’accent sur la
production d’APIs modernes, performantes et sécurisées ! Comme toujours chez Delicious Insights, elle
repose massivement sur de la mise en pratique.
Objectifs
La formation Node.js vous donne toutes les clés pour tirer le meilleur de
Node.js en professionnalisant et industrialisant vos pratiques de
développement JavaScript, notamment pour mettre en production des APIs qualitatives de dernière génération. Elle permet aux apprenant·e·s de :
savoir installer et mettre à jour Node.js et npm,
rechercher, installer et mettre à jour des modules Node,
travailler efficacement avec Node au moyen d’un outillage permettant un cycle rapide de développement,
manipuler élégamment des agencements complexes de code asynchrone, notamment à l’aide du module
async
et des promesses,connaître et exploiter au mieux les modules noyaux fournis avec Node,
comprendre et maîtriser des technologies pivots de Node telles que les événements et les flux,
structurer leur code dans le respect des meilleures pratiques Node, tant pour la partie serveur que côté client,
tester automatiquement leur code, au niveau unitaire mais aussi en intégration complète,
produire des APIs modernes, tant en REST qu’en GraphQL
Sécuriser leur code conformément à l’état de l’art
Attention : le code source de la formation est intégralement en ES2017+.
Il s’agit donc non pas d’une « simple » formation technique, mais véritablement d’un ensemble complet de savoir-faire qui donne non seulement les clés d’une fonctionnalité immédiate, mais aussi les moyens de produire du code maintenable et qualitatif sur la durée.
Besoins matériels & logiciels
- Disposer d'un ordinateur de performance suffisante, correctement configuré (notamment selon l’éventuel guide d’installation associé à la formation et indiqué au plus tard en convocation)
- Cet ordinateur doit être équipé d'une webcam, d'un micro et d'une sortie audio
- Disposer d'une connexion internet avec un débit minimal descendant/montant de 1Mbps, et idéalement au moins 5Mbps (tester ici)
- Pouvoir exécuter Zoom, soit en tant que logiciel installé, soit via le client 100% web. Le bon fonctionnement du client installé peut être testé ici.
Programme
Trouver ses marques
Bonjour Node !
Méthodes d’installation et de mise à jour
Node, l’historique en 5 minutes
Mon premier programme
Exécuter un fichier JS
Un exemple un peu plus riche
Shebangs et fichiers « exécutables »
Gestion des modules de Node
Modules configurables
Initialisation déportée
Modules Node
Chargeurs de modules et syntaxes alternatives
Chemins de recherche et détails de
require
Déboguer
Avec Visual Studio Code
Avec Google Chrome
Quelques mots sur WebStorm et les autres
Concilier débogage et nodemon
Tester
Topo sur les tests automatisés : unitaires, intégration…
Un harnais de tests riche avec Jest
Des assertions riches avec Chai
Mocking de méthodes, d’objets et de modules
npm
Packaging de modules
Rechercher des modules
Installer en local ou en global
Dépendances de production et de développement
La fin des conflits de version
package.json
en détail
Quelques modules noyaux
console
process
etos
fs
etpath
util
Objets globaux
Revue rapide des autres modules noyaux
Événements
Le module
events
EventEmitter
Intégrer une capacité événementielle à du code existant
Compétences clés
Programmation asynchrone
Callbacks
“Callback Hell” et “Pyramid of Doom”
Réduire l’imbrication à l’aide des déclarations
Les callbacks façon Node
Combinaisons complexes avec
async.js
Promesses : principes, exemples et mise en œuvre native
Versions « promesses » d’API asynchrones usuelles
async
/await
Flux et buffers
Types de flux
Modes de fonctionnement et bascule entre modes
Buffers
Encodages de texte
Pipelining
Stream all the things!
Bonnes pratiques de base de sécurité
Mises à jour de Node lui-même ; versions standard et LTS
Dépréciation des API noyau présentant un risque
npm audit
,npm audit fix
Node Security Project
Node Certified Modules
Audit automatique de vulnérabilités sur GitHub
Scripts à l’installation
Gestion des credentials et secrets
Choisir intelligemment ses algorithmes de chiffrement
Principes généraux de stockage de données
Services tiers d’interception dynamique d’attaque
Stockage moderne avec MongoDB
Principes de NoSQL
Présentation de MongoDB
Quelques mots sur CouchDB, ElasticSearch, Firebase…
L’API native de MongoDB
Gagner en confort avec Mongoose
Aperçu des clients graphiques (ex. dbKoda, Robo 3T, Compass)
Développer une API REST
Rappels sur REST
Hypermédia
Versions
Formats variables
Tester une API REST
Développer une API GraphQL
Petit topo sur GraphQL
Concevoir un schéma pertinent
Auditer la performance
Tester une API GraphQL
Sécuriser une API
Validation des requêtes
Rate limiting : variantes REST et GraphQL
Authentification : tokens ou sessions ?
À propos de JWT…
Autorisation
2FA / MFA
CORS
Déployer un serveur API
« À la main »
Sur des PaaS : Heroku, Azure, GCP, Now
Moyens pédagogiques et techniques, suivi et appréciation
Les apprenant·e·s reçoivent, à chaque début de période, un accès :
aux diapositives du support de cours au format web, afin de pouvoir faciliter leur suivi,
au dépôt de départ pour le développement de l’application « fil rouge ».
Après la session, ils reçoivent par ailleurs :
un e-mail de debrief très fourni et riche en ressources,
une archive de référence, contenant les slides de toute la formation, la codebase finalisée intégralement documentée et testée, et diverses ressources complémentaires.
L’évaluation des acquis se fait en cours de formation, au moyen de la réussite des étapes successives de développement de l’application « fil rouge » et de la bonne exécution des tests automatisés réalisés ou fournis.
Demander une convention de formation Prochaines sessions de formation
Tarifs indicatifs
Apprenant·e·s de la convention | Tarif unitaire |
---|---|
1 à 2 personnes | 2 000 € HT |
3 à 5 personnes | 1 800 € HT |
À partir de 6 personnes | 1 600 € HT |
Vous souhaitez une formation intra entreprise ou sur mesure ?
Pour une formation personnalisée, en accord avec vos besoins, dans vos locaux ou dans nos locaux.
Demander ma formation intra / sur mesure