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 :
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 :
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 inutilement
- Eviter de wrapper le code dans un test
Un autre exemple de code avec des tests successives:
function maFunction($pMonParam, $pMonAutreParam) { if( $pMonParam === 0) { if( $pMonAutreParam === 0 ) { // Mon code en conséquence } } }
Cela peut-être réécrit simplement en :
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
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