F14 · Versionner sans rien casser
Les brins
Le consommateur suit une jonction versionnée, pas une adresse figée. Une version peut changer sous lui sans rien rompre.
01Ce que c'est
Le problème du versionnement n'est pas de garder les vieilles versions — c'est que le consommateur pointe une adresse précise, donc toute évolution le casse ou le fige. Ici il suit une jonction, et la jonction porte la version.
Les assemblages se font par référence, sans copier ce qu'ils assemblent. Un brin est une suite de jonctions : le changer ne réécrit rien, ça déplace un point de vue.
Et comme les jonctions sont journalisées, la réversibilité et le versionnement sont la même propriété, pas deux mécanismes à tenir ensemble.
02Les points clés
- Suivre la jonction, pas la ref
- Le consommateur ne se fige pas sur une adresse.
- Assemblage par référence
- Rien n'est recopié pour être assemblé.
- Versionner = défaire
- Les deux sortent du même journal, au lieu d'être deux systèmes.
03Quatre points de vue
◐ Ce que ça change à l'écran
Qu'est-ce que je vois, et qu'est-ce que je fais autrement ?
Ce que vous utilisez continue de marcher quand ce qui est dessous change. C'est le genre de propriété qu'on ne remarque que lorsqu'elle manque.
⌥ Brancher ça chez soi
Par où ça entre dans mon logiciel, et qu'est-ce que ça me coûte ?
Vous ne codez plus contre une version figée en espérant qu'elle ne bouge pas. Vous suivez une jonction, et la compatibilité cesse d'être une convention entre équipes pour devenir une propriété du support.
◆ Ce que ça vous fait gagner
Quel risque ça lève, et qu'est-ce qui est vérifiable ?
La montée de version est le premier poste de risque d'un système partagé. Ici elle ne casse pas les appelants par construction, et ce qui a été déplacé peut être défait.
✻ Pourquoi ça marche
Quel est le principe, et en quoi il diffère de l'existant ?
Versionnement et annulation sont presque toujours deux mécanismes distincts, écrits séparément, qui finissent par se contredire. Les faire sortir du même journal supprime la classe entière des contradictions entre les deux.
04À quoi ça sert
- Toute donnée partagée entre plusieurs consommateurs qui évoluent séparément
- Environnements où une montée de version ne doit casser aucun appelant
- Travail à plusieurs sur un même ensemble, sans copie ni verrou global
05Ce que ça ne fait pas
- L'indirection a un prix : suivre une jonction coûte plus cher que déréférencer une adresse. Sur un chemin très chaud, ça se mesure.
- C'est une pièce d'architecture, pas une fonctionnalité visible. Elle ne se démontre bien qu'à l'échelle d'un système, ce qui la rend difficile à montrer en cinq minutes.
06Lectures disciplinaires
- ◍ Sociologie & anthropologie
- La compatibilité entre équipes est d'ordinaire une convention sociale — on s'engage à ne pas casser les autres, et on s'en veut quand ça arrive. En faire une propriété du support retire ce sujet des rapports humains. Ce qui se perd au passage : la conversation que la casse provoquait, et qui servait aussi à autre chose.
- ⚖ Droit
- Un journal de jonctions qui ne se réécrit jamais dit qui a déplacé quoi, quand, et depuis quel état. Ce n'est pas un registre tenu à côté du système : c'est le système lui-même qui en tient lieu, ce qui retire la question de savoir si le registre est à jour.
- ✦ Philosophie
- Versionner et défaire sont presque toujours deux mécanismes distincts, écrits séparément, qui finissent par se contredire aux marges. Les faire sortir du même journal ne les réconcilie pas : ça supprime la contradiction possible. C'est le genre d'économie conceptuelle qui se paie ailleurs — ici en indirection — et il faut savoir laquelle des deux dettes on préfère.