Técnicamente no, pero por lo demás absolutamente ¡Sí!
Olvídate de "Es preferencia personal", "el código funcionará bien", "me ha funcionado bien", "es más legible" yada yada BS. Esto podría conducir fácilmente a problemas muy serios si comete un error y créame, es muy fácil cometer un error cuando está codificando (¿No cree ?, vea el famoso error de falla de Apple ).
Argumento: "Es preferencia personal"
No, no es. A menos que sea un equipo de un solo hombre que se vaya a Marte, no. La mayoría de las veces habrá otras personas leyendo / modificando su código. En cualquier equipo de codificación serio, esta será la forma recomendada, por lo que no es una 'preferencia personal'.
Argumento: "el código se ejecutará bien"
¡También el código de espagueti! ¿Significa que está bien crearlo?
Argumento: "ha funcionado bien para mí"
En mi carrera he visto tantos errores creados debido a este problema. Probablemente no recuerdes cuántas veces has comentado 'DoSomething()'
y desconcertado por qué 'SomethingElse()'
se llama:
if (condition)
DoSomething();
SomethingElse();
O agregó 'SomethingMore' y no notó que no se llamará (aunque la sangría implica lo contrario):
if (condition)
DoSomething();
SomethingMore();
Aquí hay un ejemplo de la vida real que tuve. Alguien quería desactivar todos los registros para ejecutar find & replace "console.log"
=> //"console.log"
:
if (condition)
console.log("something");
SomethingElse();
¿Ves el problema?
Incluso si piensas, "estos son tan triviales, nunca haría eso"; recuerda que siempre habrá un miembro del equipo con habilidades de programación inferiores a las tuyas (¡ojalá no seas el peor del equipo!)
Argumento: "es más legible"
Si he aprendido algo sobre programación, es que las cosas simples se vuelven muy complejas muy rápidamente. Es muy común que esto:
if (condition)
DoSomething();
se convierte en lo siguiente después de que se haya probado con diferentes navegadores / entornos / casos de uso o se hayan agregado nuevas funciones:
if (a != null)
if (condition)
DoSomething();
else
DoSomethingElse();
DoSomethingMore();
else
if (b == null)
alert("error b");
else
alert("error a");
Y compáralo con esto:
if (a != null) {
if (condition) {
DoSomething();
}
else {
DoSomethingElse();
DoSomethingMore();
}
} else if (b == null) {
alert("error b");
} else {
alert("error a");
}
PD: Los puntos de bonificación van a quienes notaron el error en el ejemplo anterior.