Module 3 — Débogage JavaScript et Node.js
Maîtrisez le diagnostic approfondi des erreurs d'exécution JavaScript et TypeScript : comprenez la typologie des exceptions du moteur Google V8 et les pièges du typage. Inspectez le Scope lexical, traquez les effets de bord indésirables liés aux closures et résolvez les rejets asynchrones non interceptés dans vos flux.
1 Comprendre les erreurs JavaScript
Typologie complète des erreurs V8 (Syntax, Reference, Type, Range, URI), anatomie de l'objet Error, Stack Traces et distinction entre lieu et cause racine.
2 Déboguer les erreurs de variables et de types
Distinguer undefined, null et propriétés absentes, pièges de coercition implicite (+ vs -), égalité stricte, mutation d'objets par référence et validation d'API.
3 Identifier les erreurs de portée (Scope)
Portées globale, fonctionnelle et de bloc, différences var/let/const, démystification du Hoisting et de la TDZ, fuites de closures et masquage (shadowing).
4 Diagnostiquer les erreurs de fonctions et de conditions
Paramètres vs arguments, retours undefined involontaires, pièges des conditions truthy/falsy, opérateurs logiques et subtilités des fonctions fléchées.
5 Déboguer les Promises
États d'une promesse (pending, fulfilled, rejected), transmission des valeurs dans .then(), reprise sur erreur avec .catch(), piège de fetch() et Promise.all vs allSettled.
6 Déboguer async/await
Comprendre await non bloquant, éviter les oublis critiques de await/return, gestion des exceptions avec try/catch asynchrone et optimisation parallèle.
7 Comprendre les erreurs de synchronisation et d'exécution asynchrone
Ordre de terminaison imprévisible, diagnostic des Race Conditions sur ressources partagées, stratégies d'atomicité SQL et sérialisation par file d'attente.
8 Gestion des exceptions avec try/catch
Mécanisme throw et propagation des erreurs dans la pile d'appels, classes d'erreurs métier personnalisées (AppError) et middleware centralisé Express.
9 Débogage Node.js avec l'inspecteur intégré
Démarrage avec --inspect et --inspect-brk, configuration launch.json dans VS Code, breakpoints conditionnels, navigation pas à pas et débogage d'API Express.
10 Analyse des logs et des erreurs serveur
Niveaux de journalisation (ERROR, WARN, INFO, DEBUG), Winston structuré, corrélation par Request ID, décodage des erreurs réseau (ECONNREFUSED, EADDRINUSE) et monitoring PM2.
TP Final : Déboguer un serveur Node.js multi-anomalies
Atelier de synthèse : diagnostic et correction de 5 anomalies critiques (Promise stock, calcul de montant, validation, Race Condition et Winston Request ID).