Mon environnement de travail, et ce que j'ai fini par jeter
Les listes d’outils se ressemblent toutes parce qu’elles disent ce qu’on installe, pas ce qu’on garde. Voici ce qui est resté après trois ans sur la même application métier, et surtout ce qui est parti.
Ce qui est resté
Un serveur à moi, et tout ce qui va avec. Forge, exécuteur d’intégration continue, registre d’images, supervision, sauvegardes. Une trentaine de services. Ça a changé ma façon de travailler plus que n’importe quel outil, parce que ça déplace la question « est-ce que ça marche chez moi » vers « est-ce que ça marche en service ».
PostgreSQL pour tout. Y compris là où une base clé-valeur aurait suffi. Un système qu’on connaît profondément vaut mieux que trois qu’on connaît superficiellement, et la liste des choses que fait PostgreSQL est plus longue que ce qu’on imagine.
Docker Compose, pas Kubernetes. Sur une machine unique avec trente services, Kubernetes ajoute une couche d’abstraction qui ne résout aucun problème que j’ai. Le jour où j’aurai plusieurs machines et un besoin réel de bascule automatique, la réponse changera.
Les tests, mais pas partout. Sur les fonctions pures qui décident de quelque chose : un calcul de plafond, une réconciliation, un tri. Pas sur les composants d’affichage, où le coût de maintenance dépasse le bénéfice. Une suite de 1 200 tests qui tourne en 100 secondes se lance à chaque changement ; une suite de 5 000 qui met dix minutes ne se lance plus.
Les abandons
Les extensions d’éditeur, presque toutes. J’en avais une quarantaine. Il en reste six. Les autres résolvaient des problèmes que je n’avais pas, ou ralentissaient le démarrage pour une fonction utilisée deux fois par mois.
Les outils de génération de code. Ils produisent vite du code qu’on relit mal. Sur le travail de traduction mécanique de 1 200 chaînes que j’ai mené récemment, j’ai fait l’inverse : écrire un outil qui refuse tout ce dont il n’est pas sûr, plutôt qu’un outil qui devine. Il a refusé 22 fichiers sur 175, et ces 22 refus sont ce qui a rendu les 153 autres fiables.
Les tableaux de bord que personne ne regarde. J’ai monté une supervision complète avec des graphiques magnifiques. Je ne les ouvrais jamais. Ce qui sert, ce sont les alertes qui arrivent là où je suis déjà, et le reste est décoratif.
Les notes prises dans cinq endroits différents. Un seul fichier par projet, mis à jour en cours de route et pas à la fin, vaut mieux qu’un système d’organisation élaboré qu’on abandonne au bout de trois semaines.
Les points encore ouverts
La construction des images de conteneur reste lente, entre quatre et six minutes, et la mise en cache entre deux constructions est capricieuse. J’ai fini par accepter le délai plutôt que d’empiler des contournements dont aucun ne tenait.
Je teste mal sur téléphone. J’ai écrit un outil qui mesure les débordements horizontaux sur trente-huit écrans, ce qui a trouvé huit défauts réels. Mais un outil ne remplace pas l’usage, et je m’en aperçois à chaque fois que j’ouvre un de mes sites sur un vrai appareil.
Mes sauvegardes ont menti pendant des mois. Le script sortait avec le code 0 après 223 erreurs. Je l’ai découvert en éprouvant la restauration pour de bon, pas en la lisant.
Notez ce que vous jetez
Notez ce que vous jetez et pourquoi. La liste de ce qu’on a abandonné est plus instructive que la liste de ce qu’on utilise, pour soi comme pour les autres, et personne ne la publie.