Style de codage des instructions «if»

Dernièrement, j’ai remarqué le style de certains programmeurs qui écrivent des instructions “if” à l’envers. C’est-à-dire que dans le test, ils placent la valeur constante en premier, puis la variable qu’ils testent en second. Ainsi, par exemple, ils écrivent:

bar = foo(); if (MY_CONSTANT == bar) { /* then do something */ } 

Pour moi, cela rend le code un peu difficile à lire. Puisqu’on parle vraiment de tester la valeur de la variable “bar” et non toutes les variables égales à “MY_CONSTANT”, j’ai toujours placé la variable en premier. C’est une sorte de grammaire inexprimée.

Quoi qu’il en soit, je vois que certains programmeurs le font TOUJOURS dans l’ordre inverse. De plus, je l’ai seulement remarqué ces dernières années. Je fais de la programmation en C depuis plus de 25 ans et je ne l’ai pas vu avant, disons, environ 4 ans. Donc ma question est:

Y a-t-il une raison pour laquelle les gens le font et si oui de quoi s’agit-il? Est-ce une norme commune dans certaines langues ou projets, ou est-ce enseigné dans certaines universités? ou est-ce seulement quelques personnes qui essaient d’être différentes?

Ceci est appelé “Style Yoda” (ou “conditions Yoda” ou “notation Yoda”) et devrait vous empêcher d’écrire accidentellement

 if (bar = MY_CONSTANT) { /* then do something */ } 

puisque

 if (MY_CONSTANT = bar) { /* then do something */ } 

déclencherait une erreur du compilateur.

Le nom est dérivé de la construction de phrase tordue peu commune que le personnage de Star Wars utilise également.

À mon avis, l’utilisation de “Yoda-Style” complique la compréhension du code, car il va à l’encontre des règles de construction de phrases normales. De plus, le vérificateur de la qualité du code (ou, comme mentionné dans les commentaires, peut-être même le compilateur lui-même) devrait quand même se plaindre de telles assignations, afin que (à mon humble avis), il n’y ait aucune bonne raison de masquer votre code.

C’est une pratique exemplaire que l’on pense le mieux il ya 15 ans environ. L’avantage allégué était qu’il empêcherait une personne d’effectuer des affectations accidentelles au lieu de la comparaison.

C’était douteux à l’époque, il est à 100% théorique de nos jours, car tout compilateur utile en avertira de l’affectation d’un opérateur de twig, mais des hordes de lemmings copient toujours les meilleures pratiques sans même penser à ce que cela signifie ou à quoi il sert.