Du chaos à l’élégance : refactorer des workflows complexes avec des events
Imaginez un tunnel de vente pour le tournoi de Roland-Garros où chaque paiement et chaque validation se déroulent de manière fluide et sans accroc, débarrassé des pièges de complexité inutile : c’est exactement ce que nous allons explorer ensemble aujourd’hui.
Des nœuds au cerveau, de la complexité accidentelle, des tests illisibles, c’est ce qui m’est arrivé en implémentant le tunnel de vente du tournoi. J’étais empêtré dans de nombreux scénarios de tests unitaires pour couvrir chaque possibilité d’erreur. Pour cela, j’avais recours à un usage intensif de stubs, surtout pour les derniers cas limites qui nécessitaient de vérifier seulement le dernier comportement.
J’ai alors décidé de refactorer ce workflow avec la mise en place du pattern Observer (event producer et event listener) qui m’a permis de découpler chaque étape du workflow.
Dans ce retour d’expérience, je vous présenterai les différents scénarios qu’il m’a fallu couvrir : paiement avec ou sans 3DS, erreur de la validation de la commande, échec de remboursement…
Enfin, lors d’un live coding, je vous montrerai comment refactorer ce workflow implémenté avec un orchestrateur complexe en une chorégraphie. Vous pourrez voir comment cela simplifie l’écriture du code et des tests. Vous pourrez voir comment cela simplifie l’écriture du code et des tests.