Un atelier d'architecture · Édition d'ApprentissageAn Architecture Workshop · Learning Edition

State machine, ou les transitions qu'on rend impossiblesState machine, or the transitions we make impossible

status est une chaîne, et n'importe quelle méthode lui assigne n'importe quelle valeur : on annule une commande expédiée, on rembourse ce qui n'a jamais été payé. La règle « une commande expédiée ne s'annule pas » vit en gardes éparses, supposée plus que vérifiée — jusqu'au jour où l'illégal arrive en prod. La machine à états ferme l'ensemble en états finis, déclare en un seul endroit les transitions permises, et en fait la seule porte : une transition absente n'est pas refusée, elle est irreprésentable. Le piège des deux côtés : une machine décorative qu'un setter public contourne, ou un statechart à douze états pour un booléen. La machine ne vaut que si elle est la seule porte.status is a string, and any method assigns it any value: you cancel a shipped order, you refund what was never paid. The rule 'a shipped order isn't cancellable' lives in scattered guards, assumed more than enforced — until the day the illegal reaches prod. The state machine closes the set into finite states, declares the permitted transitions in one place, and makes that the only door: an absent transition isn't refused, it's unrepresentable. The trap on both sides: a decorative machine a public setter bypasses, or a twelve-state statechart for a boolean. The machine is only worth it if it's the only door.

AudienceAudience
Dev dont un champ status: str est muté depuis dix endroits sans gardeDev whose status: str field is mutated from ten places with no guard
Format
Self-paced
ChapitresChapters
5
Date
Juin 2026June 2026
≈ 17 min●●○○Patterns d'objetsState machineTradeoff
🔒

La suite est réservéeThe rest is members-only

Le premier numéro est libre. Débloque tout The Architecture Loop — tous les volumes, à vie — pour 5 €, paiement unique.The first issue is free. Unlock all of The Architecture Loop — every volume, forever — for €5, one-time.

Retour au kiosqueBack to newsstand