Skip to content

Articles

Avec ou sans accolades ?

14 octobre 2019 • 2 min de lecture

Avec ou sans accolades ?

Il existe un débat animé autour des déclarations simples et de la question de savoir si elles doivent avoir des accolades ou non.

En C++, C#, Java et Javascript, une déclaration d’une seule ligne sans accolades est valide. Certains profitent 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 que c’est une syntaxe plus concise, qu’il y a moins de caractères à taper, et que c’est une syntaxe valide. Pourquoi ne pas en profiter ?

Arguments en faveur des 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 en raison d’une déclaration if sur une seule ligne sans accolades. Jon ajoute que bien que l’omission des accolades dans les déclarations sur une seule ligne soit plus concise, la prévention des défauts est plus importante que la concision.

Jon propose un compromis : autoriser les déclarations sur une seule ligne si elles sont vraiment sur une seule ligne :

if(ifTrue) MowTheLawn();

Je partage les pensées de Jon. Omettre les accolades dans les lignes simples ne vaut pas le bénéfice qu’elle offre. Cela oblige l’ingénieur logiciel à considérer deux variations de syntaxe valide. Cela peut ne pas sembler si grave, mais c’est fastidieux de prendre cette décision chaque fois que vous rencontrez une déclaration if. L’effet suivant est que l’ingénieur économise quelques frappes et transfère le fardeau aux lecteurs futurs pour analyser son code.

Pour les ingénieurs logiciels C#, Microsoft a pris position dans ses 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 la 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 que c’est plus facile à lire.

Auteur : Chuck Conway est un ingénieur IA avec près de 30 ans d’expérience en génie logiciel. Il construit des systèmes IA pratiques — pipelines de contenu, agents d’infrastructure et outils qui résolvent des problèmes réels — et partage ce qu’il apprend en chemin. Connectez-vous avec lui sur les réseaux sociaux : X (@chuckconway) ou visitez-le sur YouTube et sur SubStack.

↑ Retour en haut

Vous aimerez peut-être aussi