Partager du code entre cinq applications sans les coupler
Copier-coller les mêmes utilitaires entre projets fait diverger le code ; la librairie commune mal conçue couple tout ce qu'elle touche. Entre ces deux échecs, il existe une voie étroite et documentée. Ce retour d'expérience décortique une librairie PHP interne partagée entre cinq applications Symfony d'un grand opérateur télécom : trois ans de vie, vingt-sept versions, un seul changement cassant dans l'API du quotidien. Au programme, les quatre décisions qui rendent la mutualisation rentable — soft dependencies pour ne payer que ce qu'on consomme, bridges interface + fake déterministe, rétrocompatibilité additive par défaut et changelog qui remplace les réunions — ainsi que les critères, tout aussi importants, pour savoir ce qu'il ne faut pas mutualiser.