Tech
Effect : des applications TypeScript prêtes pour la production
Erreurs, dépendances, concurrence et résilience dans un seul modèle composable, adopté progressivement.
- Durée indicative
- 2 à 3 jours
- Niveau
- Intermédiaire
- Modalités
- Présentiel · Distanciel · Hybride
- Formats
- Intra-entreprise
- Inter-entreprises
- Bootcamp intensif
- Coaching / accompagnement
Bénéfices attendus pour vos équipes et votre activité
Ce que la formation change concrètement, au-delà de la salle :
-
Moins de bugs en production
Les erreurs font partie des types : chaque cas d'échec, timeouts et retries compris, est visible et traité avant la mise en production.
-
Des fonctionnalités complexes livrées sereinement
Concurrence, orchestration et traitements en arrière-plan deviennent des briques composables plutôt que du code ad hoc.
-
Moins de régressions
Les dépendances sont explicites et remplaçables : la logique métier se teste sans démarrer d'infrastructure.
-
De la valeur sans réécriture
Effect s'adopte progressivement dans votre code existant : le premier module rapporte déjà, sans migration big bang.
Objectifs pédagogiques
À l'issue de la formation, les participants seront capables de :
- Expliquer quels problèmes Effect résout, et quand l'adopter (ou non)
- Écrire des programmes aux erreurs typées et gérer les échecs explicitement
- Structurer les dépendances avec des services et des layers, et les tester facilement
- Orchestrer des traitements concurrents avec les fibers, l'interruption et la gestion sûre des ressources
- Ajouter de la résilience (retries, timeouts, schedules) et de l'observabilité à un service
- Introduire Effect progressivement dans une codebase existante
Public
- Développeuses et développeurs TypeScript sur des backends, des API ou des frontends complexes
- Tech leads qui évaluent Effect pour leur équipe
Prérequis
- De solides bases en TypeScript (génériques, unions)
- Une expérience des Promises et d'async/await
Programme
-
Module 1 Pourquoi Effect
- Les préoccupations transverses d'une vraie application
- Le type Effect : succès, erreur et dépendances
- Évaluation vs exécution
- Exécuter les effets aux frontières
-
Module 2 Les erreurs comme citoyennes de première classe
- Erreurs attendues vs défauts
- Canaux d'erreurs typés et gestion par tag
- Accumulation d'erreurs et validation
- Des exceptions et Promises vers Effect
-
Module 3 Dépendances, services et layers
- Déclarer des services avec Context
- Construire et composer des layers
- Configuration et secrets
- Substituer des implémentations pour les tests
-
Module 4 Concurrence et ressources
- Fibers et concurrence structurée
- Interruption et annulation
- Scope et gestion sûre des ressources
- Parallélisme borné, queues et aperçu des streams
-
Module 5 Résilience et observabilité
- Schedule : retries, backoff et répétition
- Timeouts et solutions de repli
- Logs, métriques et traces
- Schema pour valider les données aux frontières
-
Module 6 Adopter Effect dans une codebase existante
- Stratégies d'adoption progressive
- Interopérabilité avec les librairies à base de Promises
- Structure de projet et conventions
- Pièges fréquents et comment les éviter
Approche pédagogique
Environ 70 % de pratique. Chaque module alterne de courts apports théoriques, du live coding et des exercices de difficulté croissante, construits à partir de code réaliste plutôt que d’exemples jouets. Un service fil rouge s’enrichit de module en module, pour voir comment erreurs, dépendances, concurrence et résilience s’articulent. Les participants repartent avec les exercices, leurs corrigés et les supports.
Sur mesure
Avant la session, un court échange me permet de comprendre votre stack, votre codebase et le niveau de l’équipe. Les exercices peuvent alors s’appuyer sur votre propre code, et l’équilibre entre les modules s’ajuster à ce qui compte le plus pour vous : adopter Effect dans un produit existant n’est pas le même chemin que démarrer un nouveau projet.
Parlons de votre besoin
Un programme à adapter, une équipe à former, une question sur un format ? Écrivez-moi pour en discuter.
Me contacterantoinecoulon.consulting@gmail.com