Développeurs Javascript
The content of this page is not available in English
Bonnes connaissances de Node.js
Construire une application web fullstack avec la MERN Stack : MongoDB, Express.js, React et Node.js
Panorama des librairies disponiblesRappels HTML5 et JavaScriptReact.js: présentation, historique des versionsInstaller l'environnement de développement (NodeJS/npm/yarn)Présentation de la commande create-react-appAtelier: Créer et démarrer un projet ReactJS
Spécification ECMAScript et implémentationsLa Syntaxe Objet:Evolution de la programmation orientée prototypeSyntaxe de classes: membres d'instances et membres de classeAgrégation d'objets (mixins)HéritageLes fonctions fléchéesDesign patternsDéfinition de modulesSystème natif de gestion des modules, chargementGestion des dépendances
Organisation d'un projet ReactArchitecture du projetPersonnaliser la configuration du projetComprendre le rendu d'un projetLe Mode Strict
Définir un composantLes composants fonction et classeUtiliser les propriétésEtats des composantsLe style (CSS/SASS) et les assetsGestion des évènementsRelation entre composantsUtiliser la compositionAtelier: Créer plusieurs composants
Présentation de JSXLes éléments React avec et sans JSXLe DOM virtuelLes expressions et les attributsSe protéger des attaques par injection (XSS)Les conditions et les bouclesLes fragmentsAtelier: Afficher, boucler et conditionner des jeux de données
Comprendre les cyclesMonter un composantAjouter des méthodes à un composant et des propriétés par défautFixer des types de propriétéAtelier: Charger des données depuis une API
Présentation des HooksListe des hooks disponiblesLes hooks d'états et d'effetLes bonnes pratiques et pièges à éviterLes hooks personnalisésAtelier: Créer et manipuler une todolist
Mise en place du Routing (React-router)Rendu d’une routeLiens via les RouterOrganiser les routesPassage de paramètres liens, redirectionsAtelier: Mettre en place la navigation
Rappel des comportements en HTML et JavaScriptLes formulaires avec ReactLes composants contrôlés et non contrôlésRécupérer et mettre à jour des donnéesValider et filtrer les donnéesPrésentation des frameworks disponibles (React Hook Form, Formik)Atelier: Créer un formulaire d'inscription
Présentation de reduxLes avantages apportés par les StoreCréer et configurer un StoreLes Actions et Les ReducersUtiliser les Action CreatorsLa fonction connect()Les Hooks Redux (useStore, useSelector, useDispatch)Atelier: Mettre en place une authentification
Architecture en couches: du monolythe au microservicesContraintes d'architecture des microservicesGestion de l'authentification centralisée dans une architecture microservicesIntérêt d'une passerelle d'APIGestion centralisée des traces
Express.js: principe, fonctionnalités, pré-requisConfiguration du projet: packages et modules additionnels: Morgan, Helmet, Cors,...Configuration de morgan pour la gestion des logs de requêtes HTTPOrganisation des couches du projet: routes, services, repositoriesIntérêt d'une couche DTO, utilisation d'un mapper d'objets: automapper ou autreImplémentation de contrôleurs REST: gestion des routes, traitement asynchroneGestion des paramètres de méthodes et du mappingGestion du downloadGestion de l'upload, configurationGestion des services et des transactions associéesGestion du cross origin avec Cors et restriction des domaines appelantsTest de l'api REST avec PostmanEcriture de tâches asynchrones, planificationCache webAtelier: Écriture de micro-services avec Express.js - Test des méthodes de services avec Postman ou autre
Open API Specification (Swagger): présentation, outilUtilisation de express-openapiVisualisation avec Swagger EditorDocumentation du code Java, génération de javadocAtelier: Documentation de l'api
Gestion globale des exceptionsCapture d'exceptions personnaliséesIntercepteurs de requêtes/réponsesAtelier: Gestion des exceptions et implémentation d'intercepteurs
http_request: méthodes et paramètresEcriture de requêtes GET, POST, PUT, DELETEGestion des paramètres et du corps de la requêteGestion des headersGestion des réponses et utilisation de mappersAtelier: Implémentation de clients pour un service REST
Configuration de HelmetGestion des données d’entêteGestion des utilisateurs et des rôles: mise en place de JWT (passport-jwt)Hachage des mots de passe avec bcryptjsAtelier: Intégration de Helmet, jsonwebtoken, dotenv et bcryptjs
Stratégies de tests, types supportésInstallation de jest, supertest et cross-env, configuration de l'applicationMocking des couches de l'applicationTests auto-configurésExécution et reportingAtelier: implémentation et exécution de tests avec Jest et supertest
Mongoose: Présentation, fonctionnalitésMongoDB: Installation, structure d'un schéma (collections, documents)Configuration d'un projet Node.js utilisant Mongoose: pool de connexion, contraintesPropriétés par défaut et paramétrageGestion des options de loggingAtelier: Intégration de Mongoose dans un projet Node.js, configuration de la Bdd NoSQL MongoDB et des traces
Modèle de baseDocuments et sous-dodcumentsGestion des typesRequêter des documentsMise à jour et suppression de documentsGestion des validationsMongoose migrations (ts-migrate-mongoose)Atelier: Réalisation d'un schéma global de BDD MongoDB, gestion des migrations et écriture de requêtes
Cache: fonctionnement, mise en cache de requêtes (mongoose-cache)HooksMise en place d'une solution d'audit de tables (historique de modifications)Atelier: Implémentation d'une couche complète de persistance - mise en place d'un cache
Méthodologie basée sur l'Active Learning : 75% de pratique minimum. Chaque point théorique est systématiquement suivi d'exemples et exercices.
Contrôle continu
Attestation de fin de stage mentionnant le résultat des acquis