-
Filière :
Développement logiciel
-
Sous-filière :
Technos Web (PHP, JS...)
-
Référence
JA-NX
-
Durée
2 jours (14 h)
-
Prix par personne HT
1 800 € HT
Objectifs pédagogiques
- Comprendre les avantages et inconvénients des approches Monorepo & Polyrepo
- Mettre en place, configurer et utiliser Nx
- Organiser un workspace qui “scale”
- Partager du code et des composants entre plusieurs produits
- Formaliser et renforcer le contrat d’API entre frontend et backend via des outils comme OpenAPI
- Optimiser le workflow de développement et l’intégration continue avec Nx
Public cible
- Développeurs JavaScript front et/ou back
- Architectes logiciels
- Ingénieurs DevOps
Pré-requis
- Connaissances en développement Web : JavaScript & TypeScript
- Etre curieux des technologies Web
Modalités d'évaluation
L’évaluation des acquis se fait tout au long de la session au travers d’ateliers de mise en pratique des notions et concepts abordés pendant la formation.
Programme de la formation
Introduction à Nx
- Histoire et origines
- Quand utiliser Nx
- Fonctionnalités de Nx
- Nx Cloud
Monorepo
- Monorepo vs Polyrepo
- Intérêt du Monorepo
- Intérêt d’une politique Single Version
Premiers Pas avec Nx
- Exercice : Création d’un workspace Nx
- Présentation de la structure d’un workspace Nx
- Exercice : Création de web apps avec Nx
Partager des composants avec Nx
- Exercice : Création d’une lib avec Nx
- Exercice : Utilisation de la lib dans les web apps
- Fonctionnement et intérêt du graphe de dépendance Nx
- Optimisation du build et de l’intégration continue grâce au caching et au graphe de dépendance
Backend
- Exercice : Création d’un service ExpressJS avec Nx
- Exercice : Renforcer le contrat d’API entre frontend et backend avec OpenAPI
Structure et Organisation
- Organisation des apps et des libs au sein d’un workspace : les différentes approches
- Exercice : Configuration des “boundaries” pour valider l’organisation du workspace
- Exercice : Mise en place d’une architecture hexagonale et un cloisonnement par domaine
Project Crystal & Libs Implicites
- Project Crystal et les libs implicites : ou comment réduire le “boilerplate” et faciliter le “scaling”
- Exercice : Utilisation d’un plugin avec inférence
- Exercice : Implémentation d’un plugin d’inférence
- Exercice : Implémentation d’un plugin de gestion de libs implicites
Personnalisation et Homogénéisation des Workspaces Nx
- Exercice : Custom executors
- Exercice : Custom generators
- Automatisation
- Conventional Commits, Semantic Versioning et Changelog automatisé
- Exercice : Publication automatisée avec nx release
- Automatisation de la génération de code avec les “sync generators”
- Exercice : Sync generators
Programme mis à jour le