Non, vraiment : YAGNI
Vendredi soir, j'ai dîné avec un ami . Nous avons notamment parlé de bon code. Nous étions tous les deux d'accord pour dire qu'un bon code est simple. C'est du code réduit à son essence.
Pendant la discussion, mon ami a dit « La perfection est atteinte lorsqu'il n'y a plus rien à enlever », citant à moitié Antoine de Saint-Exupéry.
Un bon code, dit-il, donne l'impression d'avoir été réécrit cinq fois et que l'auteur a appris à chaque itération ce qui est important et ce qui ne l'est pas, quelle est l'essence du code et comment supprimer ce qui ne l'est pas.
Non seulement je suis d'accord, mais je pense aussi que c'est un autre point d'exclamation après YAGNI (« Vous n'en aurez pas besoin »).
YAGNI, je crois sincèrement, est l'un des principes les plus importants nécessaires pour écrire du bon code. Pour moi, YAGNI signifie que vous ne devez pas encombrer votre code avec des options pour un lendemain qui pourrait ne jamais arriver.
N'ajoutez pas de code parce que « dans le futur, nous pourrions… » Même si. Même si les intentions sont bonnes, même si le code serait soigné, même si, oui, si le jour venait où nous aurions besoin de résoudre ce problème, ce code le résoudrait bien — même dans ce cas : ne l'ajoutez pas.
Il est impossible de prédire l'avenir, personne ne le peut. Ce qui paraît probable aujourd'hui peut paraître ridicule demain et le code ajouté en fonction de ce qui est probable aujourd'hui peut être du code mort dans quelques mois.
Jusque là, c'est du code zombie : du code qui n'est pas strictement mort (il est exécuté), mais qui n'affecte pas la fonctionnalité. Il est là parce qu'il pourrait affecter la fonctionnalité un jour. Et le code (mort, vivant ou quelque chose entre les deux) n'est pas gratuit : il doit être lu, maintenu, ses tests doivent être exécutés. Moins nous en avons, mieux nous nous portons.
Si nous pouvons le supprimer, supprimons-le, et si nous savons que nous pouvons le supprimer aujourd'hui, ne l'ajoutons pas.
Aparté
Il s'agit d'une nouvelle section d’Out of the box que je souhaite expérimenter, fidèle à l'idée originale de cette newsletter contenant « ce que je vous enverrais si vous me demandiez ce que j'ai en tête cette semaine ». Dans cette section, je souhaite partager des choses de la semaine précédente que je trouve intéressantes.
J'ai découvert les 14 règles de gestion de Kelly Johnson dans l'épisode Acquired (excellent Podcast en passant) de Lockheed Martin . Johnson dirigeait Skunk Works et connaissait une chose ou deux sur le transport maritime avec une petite équipe : « Le nombre de personnes ayant un lien quelconque avec le projet doit être limité d'une manière presque vicieuse. »
Le même épisode contient une histoire époustouflante sur la façon dont ils ont fait descendre des photos de l'espace sur Terre, dans les années 50. Écoutez le clip de 3 à 5 minutes à partir de 1:34 ici.
Ce billet sur les 3 forces de motivation des développeurs est intéressant car je pense souvent en 3 catégories de motivation, sauf qu'elles ne correspondent pas exactement à celles mentionnées ici. Par exemple, je pense que la catégorie « Motivation technologique » ici est trop limitée et cela m'a rappelé ce que Dave Draper a écrit dans sa préface à Never Let Go de Dan John : « Dan a soif de connaissances et de compréhension, et est obligé de transmettre ce qu'il découvre. Savoir ne suffit pas ; appliquer ce qu'il sait aide ; instruire le rend complet. »
Il y a eu une mise à jour d'un problème vieux de 2,5 ans sur l’issue tracker de Tailscale que je surveille depuis… 2,5 ans. J'adore les problèmes comme ceux-ci, dans lesquels tout le monde est utile, partage des conseils, des solutions personnalisées et des scripts, et tout le monde est content s'il y a une grande avancée dans le cas.
Je suis tombé sur le site personnel de John Tromp et cela m'a fait penser à quel point ces sites Web très personnels me manquent et qui, lorsque vous les ouvrez, vous donnent l'impression d'entrer dans l'univers d'une personne, avec des flèches pointant vers tous ses intérêts et ses passions.
« Les tâches ménagères ne sont pas une distraction ; elles sont l'acte lui-même. » : J’adore cette citation de l’article.
Merci de m’avoir lu!