Nom de fichier: | Udemy – Maîtriser Node.js: du débutant au professionnel du backend |
Source du contenu: | https://www.udemy.com/course/mastering-nodejs-from-beginner-to-backend-pro/ |
Taille du fichier: | 637 Mo |
Éditeur: | udemie |
Mis à jour et publié: | 03 septembre 2024 |
1. Architecture NodeJS
- Architecture pilotée par les événements:Comprendre comment NodeJS gère les opérations asynchrones à l’aide d’une boucle d’événements.
- Nature à filetage unique:Découvrez comment NodeJS gère plusieurs tâches simultanément même s’il est monothread.
- E/S non bloquantes:Comment NodeJS utilise les opérations d’E/S non bloquantes pour gérer efficacement plusieurs requêtes.
2. Modules de base
- Module HTTP:Création de serveurs HTTP, gestion des requêtes et des réponses.
- Module de système de fichiers (fs):Lecture et écriture de fichiers, gestion de répertoires.
- Module Chemin:Travailler avec les chemins de fichiers et de répertoires.
- Module Événements:Création et gestion d’événements personnalisés.
- Module de flux:Gérer de grands ensembles de données en traitant les données en morceaux.
- Module du système d’exploitation:Interagir avec le système d’exploitation, collecter des informations sur le système.
- Util Module:Fonctions utilitaires, y compris les méthodes obsolètes et le débogage.
3. npm (gestionnaire de packages de nœuds)
- Gestion des colis:Installation, mise à jour et suppression de packages.
- Création et publication de packages:Créez vos propres packages NodeJS et publiez-les sur npm.
- Versionnement sémantique:Comprendre le versioning dans npm et comment l’utiliser.
4. Programmation asynchrone
- Rappels:La base de la programmation asynchrone dans NodeJS.
- Promesses :Gérer les opérations asynchrones avec plus d’élégance avec .then() et .catch().
- Asynchrone/Attente:Écrire du code asynchrone qui semble synchrone pour une meilleure lisibilité.
- Boucle d’événement:Compréhension approfondie de la façon dont la boucle d’événements traite les rappels asynchrones.
- Minuteries:Utilisation de setTimeout, setInterval et setImmediate.
5. Cadre Express.js
- Configuration d’un serveur:Création d’un serveur de base avec Express.
- Routage:Définir des routes pour gérer les requêtes HTTP.
- Intergiciel:Implémenter et comprendre le rôle du middleware dans le traitement des requêtes.
- Gestion des erreurs:Gestion centralisée des erreurs dans les applications Express.
- Moteurs de modèles:Utiliser des moteurs comme EJS, Pug ou guidon pour restituer du contenu dynamique.
6. API Web et services RESTful
- Création d’API REST:Création de services RESTful avec Express.js ou d’autres frameworks.
- Opérations CRUD:Implémentation des opérations de création, lecture, mise à jour et suppression dans votre API.
- Authentification:Sécurisation des API avec JWT (JSON Web Tokens), OAuth ou d’autres méthodes d’authentification.
- Documentation API:Utiliser des outils comme Swagger pour documenter votre API.
7. Intégration de base de données
- Bases de données SQL:Utiliser des bibliothèques comme pg pour PostgreSQL ou mysql2 pour MySQL.
- Bases de données NoSQL:Intégration avec MongoDB à l’aide de Mongoose.
- ORM:Travailler avec des ORM comme Sequelize pour les bases de données SQL.
- Migrations de bases de données:Gestion des modifications du schéma de base de données avec des outils de migration.
8. Applications en temps réel
- WebSockets:Utiliser des bibliothèques comme socketIO pour créer des applications en temps réel comme des applications de chat.
- Événements envoyés par le serveur (SSE):Implémentation de mises à jour unidirectionnelles serveur-client.
- Vote:Comprendre les interrogations longues comme alternative aux WebSockets.
9. Sécurité
- Validation des données:Garantir que les données entrantes sont valides et sécurisées à l’aide de bibliothèques comme Joi.
- Désinfection des entrées:Prévenir les attaques par injection en désinfectant les entrées.
- Authentification et autorisation:Mise en œuvre de mécanismes d’authentification sécurisés.
- HTTPS:Sécuriser votre serveur NodeJS avec HTTPS.
- Limitation du débit:Protégez vos API contre les attaques par force brute avec limitation de débit.
10. Tests
- Tests unitaires:Rédaction de tests pour des unités de code individuelles à l’aide de frameworks tels que Mocha, Jest ou Jasmine.
- Tests d’intégration:Tester l’interaction entre les différentes parties de votre application.
- Développement piloté par les tests (TDD):Écrire des tests avant le code pour garantir la fonctionnalité.
- Moquerie et stubbing:Simulation de services ou de fonctions externes dans des tests.
11. Déploiement et mise à l’échelle
- Gestion de l’environnement:Utilisation de fichiers .env et de variables d’environnement pour la configuration.
- Gestion des processus:Utiliser PM2 ou Forever pour gérer les processus NodeJS en production.
- Équilibrage de charge:Répartir le trafic sur plusieurs instances de votre application.
- Mise à l’échelle:Techniques de mise à l’échelle horizontale et verticale pour les applications NodeJS.
- Conteneurisation:Utiliser Docker pour conteneuriser votre application NodeJS.
- Pipelines CI/CD:Automatisation du processus de déploiement à l’aide d’outils tels que Jenkins, GitHub Actions ou CircleCI.
12. Travailler avec des flux et des tampons
- Flux lisibles et inscriptibles:Comprendre comment traiter les données pièce par pièce.
- Tuyaux:Connecter des flux ensemble pour transmettre des données d’un flux à un autre.
- Transformer les flux:Manipuler les données au fur et à mesure de leur lecture ou de leur écriture.
- Tampons:Gestion des données binaires directement dans NodeJS.
13. Gestion des erreurs et débogage
- Meilleures pratiques de gestion des erreurs:Utilisation de try…catch et d’un middleware centralisé de gestion des erreurs.
- Enregistrement:Implémentation de la journalisation à l’aide de bibliothèques comme Winston ou Bunyan.
- Débogage:Utilisation du débogueur intégré NodeJS ou de Chrome DevTools pour le débogage.
14. Créer des outils et des exécuteurs de tâches
- Gorgée:Automatisation de tâches telles que la minification, la compilation et le peluchage.
- Pack Web:Bundleur de modules pour gérer les actifs du projet.
- ESLint:Appliquer les normes de codage et les directives de style.
15. Microservices et passerelles API
- Architecture des microservices:Conception et mise en œuvre de microservices avec NodeJS.
- Passerelle API:Gérez plusieurs microservices derrière une interface unifiée à l’aide d’outils comme YARP ou NGINX.
- Communication interservices:Utiliser des protocoles tels que HTTP, gRPC ou des files d’attente de messages.
16. Optimisation des performances
- Profilage:Utiliser des outils tels que NodeJS Profiler et Clinic.js pour identifier les goulots d’étranglement en matière de performances.
- Mise en cache:Implémentation de stratégies de mise en cache avec Redis ou des caches en mémoire.
- Regroupement:Utiliser le module de clustering de NodeJS pour tirer parti des systèmes multicœurs.
17. Sujets avancés
- Processus enfants:Exécuter plusieurs processus à partir d’un seul script NodeJS.
- Sujets de travail:Tirer parti du multithreading dans NodeJS pour les tâches gourmandes en CPU.
- Sans serveur:Déploiement d’applications NodeJS dans une architecture sans serveur utilisant AWS Lambda, Google Cloud Functions, etc.