Écrivez du code que les humains peuvent comprendre
La loi de Demeter
Une classe ne doit interagir qu’avec ses dépendances immédiates
Un niveau d'abstraction par méthode
Pour fluidifier la lecture, une fonction devrait toujours se limiter à un seul niveau d'abstraction : soit exprimer une intention soit contenir une implémentation technique
Le nommage d'une méthode
La longueur idéale d’un nom de méthode varie en fonction de son niveau dans la chaîne d'appels
Regroupez ce qui partage un sens commun
Les lignes d'une méthode forment naturellement des blocs logiques pouvant être encapsulés
Limitez les arguments
Le nombre de cas d'utilisation d'une méthode est étroitement corrélé à son nombre d'arguments
Évitez la surcontextualisation
Tant que le nom reste clair et sans ambiguïté quant à sa finalité, préférez des noms courts et univoques.
Commentez intelligemment
Un bon commentaire ne doit pas substituer le code mais le compléter
Les expressions combinées
Une expression combinée est une accumulation de condition au sein d'une même expression.
Attention à la négation
Préférez à la négation une forme affirmative
Limiter la longueur des lignes
La programmation n'est pas un exercice de concision
Be clear, not clever
Fuyez toute tendance narcissique à rendre votre code compliqué
Variable intermédiaire
Une variable intermédiaire permet de contextualiser votre code
Nombre magique
Un nombre magique est une valeur possédant une signification métier et présente en dur dans votre code
Couplage temporel
Le couplage temporel est un comportement contextuel d’une méthode qui n’est pas pertinent dans tous les cas d’utilisation
L'utilisation des flags
Un flag est un argument optionnel influant sur le comportement d’une méthode
Les blocs logiques
Un bloc logique est un ensemble de lignes partageant un sens commun
pure / impure
Une méthode impure possède des effets de bord, toutes ses dépendances ne sont pas déterministes mais caractérisées par l’état de l’application