Techniquement non mais sinon absolument oui !!!
Oubliez "C'est une préférence personnelle", "le code fonctionnera très bien", "il a bien fonctionné pour moi", "c'est plus lisible" yada yada BS. Cela pourrait facilement conduire à des problèmes très graves si vous faites une erreur et croyez-moi, il est très facile de faire une erreur lorsque vous codez (ne croyez pas?, Consultez le célèbre bug Apple go to fail ).
Argument: "C'est une préférence personnelle"
Non, ce n'est pas le cas. À moins que vous ne soyez une équipe d'un seul homme partant sur Mars, non. La plupart du temps, d'autres personnes liront / modifieront votre code. Dans toute équipe de codage sérieuse, ce sera la méthode recommandée, donc ce n'est pas une «préférence personnelle».
Argument: "le code fonctionnera très bien"
Il en va de même pour le code spaghetti! Cela signifie-t-il que vous pouvez le créer?
Argument: "cela a bien fonctionné pour moi"
Dans ma carrière, j'ai vu tellement de bugs créés à cause de ce problème. Vous ne vous souvenez probablement pas combien de fois vous avez commenté 'DoSomething()'
et déconcerté par la raison de l' 'SomethingElse()'
appel:
if (condition)
DoSomething();
SomethingElse();
Ou ajouté 'SomethingMore' et n'a pas remarqué qu'il ne sera pas appelé (même si l'indentation implique le contraire):
if (condition)
DoSomething();
SomethingMore();
Voici un exemple concret que j'ai eu. Quelqu'un a voulu désactiver toute la journalisation afin de lancer find & replace "console.log"
=> //"console.log"
:
if (condition)
console.log("something");
SomethingElse();
Vous voyez le problème?
Même si vous pensez, "ce sont si insignifiants, je ne ferais jamais cela"; rappelez-vous qu'il y aura toujours un membre de l'équipe avec des compétences en programmation inférieures à vous (j'espère que vous n'êtes pas le pire de l'équipe!)
Argument: "c'est plus lisible"
Si j'ai appris quelque chose sur la programmation, c'est que les choses simples deviennent très vite très complexes. Il est très courant que ceci:
if (condition)
DoSomething();
se transforme en ce qui suit après avoir été testé avec différents navigateurs / environnements / cas d'utilisation ou de nouvelles fonctionnalités sont ajoutées:
if (a != null)
if (condition)
DoSomething();
else
DoSomethingElse();
DoSomethingMore();
else
if (b == null)
alert("error b");
else
alert("error a");
Et comparez-le avec ceci:
if (a != null) {
if (condition) {
DoSomething();
}
else {
DoSomethingElse();
DoSomethingMore();
}
} else if (b == null) {
alert("error b");
} else {
alert("error a");
}
PS: les points bonus vont à celui qui a remarqué le bogue dans l'exemple ci-dessus.