Développeurs Javascript
Der Inhalt dieser Seite ist nicht auf Deutsch verfügbar
Bonnes connaissances de Node.js
Construire une application web fullstack avec la MEAN Stack : MongoDB, Express.js, Angular et Node.js
Présentation de l'environnement de développement NodeJSPrésenation de la CLI AngularRappel des normes EcmaScriptCréer un projet Angular à l'aide d'angular CLIAtelier: Configurer un projet Angular
Présentation de TypeScriptLes types de variables de TSLe typage fortLes interfaces de classePrésentation des décorateurs
La Syntaxe de base d'AngularL'organisation en Module et ComposantLes décorateurs AngularLe MVVM / MVWLe One Way et Two Way Data BindingL'opérateur "moustache"La gestion des Events et l'objet $eventLes NgModelLes variables de templateAtelier: Réaliser une TodoList
Le Module de RoutageDéclarer les routes d'un projetGérer les redirectionsLa route par défautRécupérer les paramètres d'url, les query-strings, etcLimiter l'accès au route: Les guardsRoutes imbriquéesAtelier: Mettre en place une application multi-vues
Présentation des pipes "|"Utiliser le safeOperator "?."Importer des locales dans notre projetDéfinir une locales par defaultUtiliser les locales avec les filtresCréer des pipes personnalisésLes pipes pures et impuresAtelier: Créer un pipe personnalisé
Différence entre directives d'attributs et structurellesLes directives ngFor, ngIf, ngSwitch, ngClass, ngStyleUtiliser les attributs ARIA (directive attr.*)Créer une directive personnaliséeTransmettre des valeurs à une directive (@input)Gérer les événements dans une directiveAtelier: Créer une directive personnalisé
Présentation des formulairesLes Templates Driven Form et Reactive FormGérer la validations des champs et du formulairePrésentation des états d'un formulaire (ngControl)Valider les formulaires (ngSubmit)Créer des validateurs personnalisésAtelier: Gestion des entrées utilisateurs
Principes de DIConfigurer l'injecteurEnregistrer des services dans un composantCréation de l'injecteurDifférents types de service: classe, valeur, fabrique...Atelier: Architecturer notre application sous forme d'une organisation de services
Principe de communication asynchroneFonctionnement des promesses et async/awaitPrésentation des Observables RxJSLe Module HttpClientModuleCommuniquer avec une API REST (http.get, http.post, etc)Appliquer des fonctions de callbackGestion des erreursTypage les données retournéesAtelier: Mettre en place un client d'API REST
Les commandes de compilationLes modes de compilationLes compilations AOT et JITGestion du base hrefLes règles de réécritureAtelier: Compiler un projet pour la publication
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-documentsGestion 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