Un code propre et lisible
Un investissement à long terme - pour soi, pour ses collègues, et pour tous ceux qui liront ce code après nous.
Les principes d'un code propre
Un investissement à long terme pour soi et ses collègues
La référence absolue sur le sujet. Lire simplement le sommaire suffit à comprendre l'esprit du livre. Un point de départ idéal pour s'immerger dans ce que devrait être la qualité logicielle.
Variables et fonctions doivent révéler leur intention. Un bon nom rend les commentaires inutiles et le code auto-documenté.
Une fonction = une seule chose. Plus elle est courte et ciblée, plus elle est facile à lire, à tester et à faire évoluer.
Trop d'arguments signalent souvent une fonction qui fait trop de choses. Viser 0 à 3 arguments maximum.
Le typage explicite clarifie les intentions, prévient les erreurs et facilite la lecture par les outils et les collègues.
Sortir tôt d'une fonction en cas de condition non remplie (early return) réduit l'imbrication et améliore la lisibilité.
Si le code a besoin d'un commentaire pour être compris, c'est souvent le signe qu'il peut être mieux écrit.
Fonctions non appelées, variables inutilisées, blocs commentés - les supprimer. Git est là pour retrouver le passé si besoin.
Deux occurrences identiques méritent d'être extraites dans une fonction centralisée. La duplication est une future source d'erreur.
Ne pas attendre que le code devienne ingérable. De petites améliorations régulières valent mieux qu'une grande refonte douloureuse.
Le code spaghetti
Couplage fort - quand tout dépend de tout
J'améliore la fonction café. Je sais immédiatement si ça fonctionne - elle ne fait que du café. Aucun effet de bord possible.
J'améliore le café. Mais le code est couplé au thé, au déca, au moka. Mon optimisation a peut-être cassé le thé sans que je le sache.
Signaux d'un code spaghetti
- !Modifier une fonction casse quelque chose d'apparemment sans rapport
- !Impossible de comprendre une fonction sans lire 10 autres fichiers
- !Les variables globales transitent partout dans le code
- !Une simple évolution prend des jours au lieu d'heures
Appliquer ces principes au quotidien
Des habitudes simples pour un code qui s'améliore en continu
Laisser le code toujours un peu plus propre qu'on ne l'a trouvé. Chaque passage est une occasion d'amélioration - renommage, extraction, suppression de code mort.
Ne pas attendre que le code devienne un monstre. Un meilleur découpage s'obtient par petits incréments réguliers, pas par grandes refontes douloureuses.
Logger les entrées, sorties et variables clés des fonctions. Simplifie le support, le débogage, et documente implicitement le comportement attendu.
Écrire pour celui qui lira ce code dans 6 mois - soi-même ou un collègue. Laisser l'héritage le moins douloureux possible est une marque de professionnalisme.
Je trouve confortable dans le quotidien que des consultants pas forcément experts en technique soient capables de lire le code que j'écris pour en discuter.
- François Bonnafous · pausecafe.devÀ retenir
- ✓Chaque intervention est une occasion d'améliorer, même à petite échelle
- ✓Un code propre est un cadeau fait aux futurs développeurs - et à soi-même
- ✓La traçabilité des fonctions simplifie le support et réduit le temps de debug
- ✓Découper en petits lots - toujours plus efficace que la grande refonte
Un mot sur les tests unitaires
Un idéal à intégrer progressivement
Ce que les tests unitaires apportent
- ✓Détection précoce des erreurs - avant qu'elles atteignent la production
- ✓Refactoring en confiance - les tests signalent toute régression immédiatement
- ✓Documentation vivante - un test décrit le comportement attendu d'une fonction
- ✓Socle pour l'intégration continue - chaque commit peut être validé automatiquement
- ✓Le TDD pousse à concevoir des fonctions testables - donc naturellement propres
Un investissement, pas une contrainte
Un code propre se lit, se comprend et s'adapte facilement. Le code spaghetti c'est son contraire - tout couplé, fragile à la moindre modification. Les habitudes quotidiennes - boy scout, refactoring continu, traçabilité - construisent la qualité dans la durée. Les tests unitaires en sont le filet de sécurité.
Écrire du code propre est un cadeau fait à ses collègues, à ses successeurs - et à soi-même dans six mois.