- Qu’est-ce que la beauté ?
- La beauté est une valeur ressentie par les êtres humains
- C’est ce qui procure étonnement, nouveauté, stabilité, confort, simplicité, etc.
- Elle peut être divisée entre ce qui surprend et ce qui paraît naturel
- Pour ressentir la beauté (ou l’illumination), un certain niveau de connaissances de base est nécessaire
- La beauté sert à la survie. Face à quelque chose d’incompréhensible, on ressent du malaise
- Définition du beau code
- Le code ne travaille pas seul, donc plus il est beau, mieux c’est
- Idéalement, c’est un code que l’on peut lire sans buter sur un seul passage
- Un code naturel est préférable
- Les quatre éléments du beau code
- Social, fiable, linéaire et déclaratif
- Les aspects sociaux et fiables recherchent la stabilité
- Les aspects linéaires et déclaratifs recherchent l’esthétique
- Un code social
- Un code qui prend en compte tout le contexte autour de lui
- Le fait de suivre les conventions, les règles et la mission
- Similaire à la dimension sociale du langage
- Un code fiable
- Un code que l’on peut utiliser en toute confiance
- S’il n’est pas fiable, il faut alors le vérifier soi-même
- Il faut prendre en compte les fonctions pures, l’idempotence, les effets de bord, etc.
- Comme il est impossible d’éliminer totalement les effets de bord, on peut au moins le signaler via la documentation ou les exceptions
- Un code linéaire
- Un code qu’il suffit de lire une seule fois de haut en bas
- Quand le code est linéaire, la mémoire de travail le traite plus facilement d’un point de vue cognitif
- Un code déclaratif
- Un code qui indique précisément ce qu’il fait
- Il est préférable de lui donner des noms appropriés
- D’un point de vue cognitif, cela facilite le traitement par la mémoire à court terme
- Dans la réalité
- Le beau code n’apparaît pas d’un seul coup comme par magie
- Un code parfaitement beau est rare
- D’où la nécessité des notions d’amélioration progressive et d’ornement du code
- Amélioration progressive
- Faire du refactoring
- Répéter inspection et amélioration afin de maintenir en continu un niveau de qualité de 70 à 80 %
- Quand faut-il inspecter et améliorer ?
- Quand l’ownership du code devient flou
- Quand la connaissance du code écrit s’estompe
- Quand on sent une mauvaise odeur
- Quand on ressent une gêne en regardant le code
- Ornement du code
- Le fait d’embellir le code pour qu’il paraisse beau
- Les exemples typiques sont les tests, la revue de code, la documentation et les commentaires
- Tests
- Ils rendent le code plus fiable
- Ils garantissent le fonctionnement, et les tests eux-mêmes peuvent servir de documentation
- Revue de code
- Elle rend le code plus fiable grâce à la vérification
- Comme elle diffuse l’ownership du code, elle peut aussi renforcer sa dimension sociale
- Une revue de code systématique peut aussi devenir un goulot d’étranglement
- Documentation
- Elle aide à mieux comprendre le code
- Le bon moment pour documenter est celui où d’autres développeurs doivent connaître le contexte, la conception et les règles de ce code
- C’est encore mieux avec des outils comme UML
- Commentaires
- Pour les zones de code complexes et inévitables, il vaut mieux les expliquer par des commentaires que par de la documentation
- La qualité du code est importante, mais un beau code ne garantit pas forcément le succès
- Il peut être encore plus important de prendre en compte la conception ou les processus métier
- La qualité du code ne garantit pas nécessairement la qualité du produit
9 commentaires
mdr mdr mdr mdr
Le code socialement responsable semble important, haha.
Je trouve que c’est un bon article, bien structuré. Si des problèmes liés à la qualité du code reviennent souvent dans l’équipe, ce serait sans doute une bonne lecture à faire ensemble avant d’en discuter.
Sujet potentiellement ardu, mais ça se lit très facilement. Merci !
Comme toujours, l’amélioration progressive est essentielle. Après tout, on ne peut pas tout réussir du premier coup.
Le goût qui consiste à trouver une beauté esthétique dans le code qu’on écrit soi-même devrait simplement rester une affaire de point de vue personnel. S’il vous plaît, n’allez pas devenir ce genre de senior qui, tout en étant payé comme pro, aborde le code de l’entreprise sous un angle artistique et inculque en plus un état d’esprit bizarre aux juniors. Sinon, qu’il arrête d’être développeur et aille faire de la peinture ; c’est quoi encore ce délire avec l’art…
Vous semblez avoir mal compris le mot « beauté ».
Le jeune homme qui ne lit que les titres
Haha, c’est un peu beaucoup exagéré, là.