Accélérez et structurez vos développements JavaScript avec N

  • 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