PHP #1 – Ecrire du code lisible, l’indentation

Cet article sera consacré à comment écrire du code plus lisible. Ecrire du code, c’est facile, écrire du code lisible et maintenable c’est une autre paire de manche :p. On va voir ma méthode pour réduire au maximum l’indentation et simplifier les tests.
Attention : Cela n’engage que moi et c’est ma vision personnelle.
Je voie beaucoup de code écrit de cette manière :
[highlighter]
function maFunction($pMonParam) { // Le premier test if( $pMonParam === 0) { // Mon code en conséquence } }
Pour plus de lisibilité, l’extrait de code ci-dessus pourrait être réduit à un seul niveau :
[highlighter]
function maFunction($pMonParam) { // Le premier test if( $pMonParam !== 0) { return; } // Mon code en conséquence }
Le code ci-dessus à plusieurs avantages
- Il permet de garder à l’esprit que tous les tests primordiaux sont faits en amont du code métier et ainsi garder de la lisibilité pour un humain
- De garder de l’espace pour coder sans avoir à scroller ou à décaler ses yeux inutillement
- Eviter de wrapper le code dans un test
Un autre exemple de code avec des tests successives:
[highlighter]
function maFunction($pMonParam, $pMonAutreParam) { if( $pMonParam === 0) { if( $pMonAutreParam === 0 ) { // Mon code en conséquence } } }
Cela peut-être réécrit simplement en :
[highlighter]
function maFunction($pMonParam, $pMonAutreParam) { if($pMonParam !== 0) { return } if($pMonAutreParam !== 0) { return } // Mon code en conséquence }
Ou même encore mieux, réduire les tests en un seul if
[highlighter]
function maFunction($pMonParam, $pMonAutreParam) { if($pMonParam !== 0 || $pMonAutreParam!== 0) { return } // Mon code en conséquence }
Les tests “&&” et “||” permettent successivement de faire un “et” / “ou”. De cette manière, on concatène plusieurs tests dans le même.
Ps : J’avoue que des fois la gymnastique d’inverser les tests pour faire un return est parfois difficile. Surtout avec plusieurs tests imbriqués.
Inspiré par : https://freek.dev/1593-writing-readable-php-decrease-indentation-by-returning-early