
Il y a un débat passionné autour des instructions simples et de savoir si elles devraient avoir des accolades ou non.
En C++, C#, Java et Javascript, une instruction sur une seule ligne sans accolades est valide, certains tirent parti de cette fonctionnalité, tandis que d’autres ne le font pas.
Par exemple
if(ifTrue)
MowTheLawn();
for(var index; index > 10; index++)
ChopWood();
foreach(var dollar in money)
BuyLollipop();
while(untilTheEnd)
Read();
Arguments contre les accolades sur une seule ligne
L’argument contre les accolades est qu’il s’agit d’une syntaxe plus concise, avec moins de caractères à taper, et c’est une syntaxe valide. Pourquoi ne pas en profiter ?
Arguments pour les accolades sur une seule ligne
L’argument en faveur des accolades est la cohérence, moins de bogues et plus naturel à analyser mentalement.
Dans un article écrit par Jon Abrams intitulé Single-line ‘if’ statements, Jon explique comment un défaut dans l’implémentation TLS d’Apple a été introduit à la suite d’une instruction if sur une seule ligne sans accolades. Jon continue en disant que bien qu’omettre les accolades dans les instructions sur une seule ligne soit plus concis, prévenir les défauts est plus important que la concision.
Jon propose un compromis, permettre les instructions sur une seule ligne si elles sont vraiment sur une seule ligne :
if(ifTrue) MowTheLawn();
Je fais écho aux pensées de Jon, omettre les accolades dans les lignes simples ne vaut pas l’avantage qu’elles offrent. Cela force l’ingénieur logiciel à considérer deux variations de syntaxe valide. Cela peut ne pas sembler si grave, mais il est épuisant de prendre cette détermination chaque fois que vous tombez sur une instruction if. L’effet suivant est que l’ingénieur économise quelques frappes de touches et transmet le fardeau aux futurs lecteurs pour analyser leur code.
Pour les ingénieurs logiciels C#, Microsoft a pris position dans leurs conventions de codage, qui demandent des accolades.
Lorsque nous utilisons des accolades dans tous les cas, quel que soit le nombre de lignes, ce qui est dans la portée et ce qui est hors de portée est très clair. Cela rend le code moins sujet aux erreurs et plus cohérent, bien que certains puissent contester ce point, je trouve qu’il est plus facile à lire.
Auteur : Chuck Conway se spécialise dans l’ingénierie logicielle et l’IA générative. Connectez-vous avec lui sur les réseaux sociaux : X (@chuckconway) ou visitez-le sur YouTube.