- Architecture
- Université
- 2h00
💥 Domptez la complexité d’un tunnel de vente et retrouvez des tests lisibles
Date mercredi
Horaire 8h00 à 10h00
Salle Amphi B
Description
La refonte de l’étape du paiement de la billetterie Roland-Garros était critique. Mais à cause de la complexité des différents cas fonctionnels, je me suis retrouvé empêtré avec des tests peu lisibles et une implémentation difficile à suivre. Dans cet atelier, je vous propose de découvrir l’architecture événementielle que j’ai pu mettre en place, lors d’un refactoring guidé, basé sur deux patterns puissants : Command/CommandHandler et Event/EventListener. 🔧 Ce que vous apprendrez : - Structurer la logique métier avec Command/CommandHandler - Publier et consommer des événements métier pour une architecture extensible - Simplifier les tests unitaires en isolant les comportements - Construire un tunnel de vente maintenable et évolutif ⏱️ Déroulement : 30 min de présentation, 10 min de setup, 60 min de refactoring guidé, 10 min de Q&A 🎯 Public cible : dév backend avec un niveau intermédiaire minimum sur une stack Java/SpringBoot 🏁 Résultats : code refactoré, use case réutilisables et plus lisibles, réduction des cas de test
Orateur·ices
Thibaut Cantet
Thibaut est développeur depuis plus de 18 ans. Convaincu par les pratiques craft, il s’efforce de rendre le code le plus simple et agréable à travailler. Adepte de DDD, il aime parler design et architecture.
Actions rapides
Les sessions futures sur le même thème
- Architecture
- Conférence
Rejouer une partie, rejouer le système de la matrice : des replays de jeux vidéo à l’event sourcing
Dans la plupart des jeux vidéo modernes, un “replay” n’est pas une vidéo mais une simple liste d’événements : les inputs des joueurs, quelques événements système et un état initial minimal. Pour revoir une partie, le moteur ne fait “que” tout rejouer dans l’ordre et reconstruit ainsi l’intégralité de la session. 🎮📜 Côté backend, l’event sourcing applique exactement la même idée : au lieu de stocker uniquement l’état courant, on enregistre la chronologie des décisions métier (events) qui ont mené à cet état. On peut alors “remonter le temps” pour débuguer un bug tordu, auditer un comportement étrange, ou reconstruire un système sur une nouvelle architecture. Dans ce talk, on partira de cas concrets côté jeux (replays, rewind, killcams) pour expliquer pas à pas : - comment fonctionne un système de replay basé sur un log d’événements, - en quoi ce modèle diffère d’une approche CRUD classique, - ce que l’event sourcing reprend de cette idée pour nos SI. Je montrerai un mini-système de replay dans un petit jeu ainsi qu’un exemple d’event store côté backend (Java/TypeScript), sans masquer les limites : coût de relecture, complexité, tooling… 🎯 Public cible : dévs backend / fullstack, architectes, curieux d’architecture qui aiment les métaphores vidéoludiques 💾 Plan proposé 1 - “Un replay, ce n’est pas une vidéo” Comment les jeux enregistrent une partie : log d’événements + état initial. Démo simple : rejouer une partie en réinjectant les inputs dans une boucle de jeu. 2 -De la partie au système : introduction concrète à l’event sourcing Modèle CRUD vs modèle “flux d’événements rejoués”. Notions d’event store, projection/lecture, relecture d’événements. 3 - Cas d’usage réels : debug, audit, résilience Time-travel debugging, audit, reconstruction d’état / migration. 4 - Limites, pièges et conseils pragmatiques Coût de la relecture, snapshots, complexité pour les équipes, tooling et quand ne PAS utiliser l’event sourcing.
Mercredi 15h00 à 15h55 - Amphi E
- Architecture
- Conférence
Vous pensiez que la dette technique était le pire? Voici la dette de conception !
Dans nos métiers, la dette technique est sans doute la chose la plus frustrante, éprouvante et coriace contre laquelle nous devons lutter. Bien sûr, il existe des bonnes pratiques : refactoriser, viser la simplicité avec KISS, éviter de trop anticiper avec YAGNI afin de limiter cette dette au maximum. Et pourtant, on n’y vient jamais vraiment à bout. Pire encore, elle continue de s’accumuler même lorsque nous les appliquons, comme une fatalité. Et si ces mêmes bonnes pratiques ne faisaient parfois qu’empirer le problème au lieu de le résoudre ? La dette technique peut n’être que la partie visible de quelque chose de plus profond : la dette de design accidentelle. Un problème bien plus complexe, donnant lieu à des logiciels spaghettis et à des microservices en « monolithe distribué », dont nous sommes souvent à l’origine sans même nous en rendre compte. Dans cette conférence, nous explorerons les mécanismes de la dette de design et ses impacts, conséquents sur notre architecture, nos processus, notre organisation, et même notre business. À travers des exemples concrets, nous verrons comment la détecter, analyser sa profondeur et agir avant qu’elle ne s’ancre durablement.
Jeudi 8h30 à 9h25 - Amphi A
- Architecture
- Conférence
Cache-moi si tu peux : patterns et pièges du cache en production
"On va mettre un cache, ça ira plus vite." Cette phrase a déjà coûté des nuits blanches à bien des équipes. Le cache est souvent introduit comme une "optimisation" rapide à mettre en place. En réalité, il transforme profondément le comportement d'un système : cohérence éventuelle, données obsolètes, effets de bord distribués... et bugs impossibles à reproduire. Aujourd'hui, ces mêmes défis réapparaissent dans les architectures intégrant des LLMs, avec l'émergence de modèles comme le *semantic caching*. Partons ensemble pour un voyage pragmatique dans le monde du cache : - ce qu'est réellement un cache (et ce qu'il n'est pas), - les principaux patterns de caching et leurs compromis, - les anti-patterns classiques qui transforment une application rapide en cauchemar opérationnel, - un arbre de décision pour choisir la bonne stratégie. Cette session vous donnera les outils pour construire des systèmes rapides et prévisibles, et vous aidera à ne plus jamais considérer le cache comme un simple détail d'implémentation.
Jeudi 11h30 à 12h25 - Amphi B