Esta es mi opinión. de código que usan banderas:
...
if (dogIsBarking && smellsBad) {
cleanupNeeded = true;
}
doOtherStuff();
... many lines later
if (cleanupNeeded) {
startCleanup();
}
...
muy sucio. El programador simplemente codifica en el orden que su mente le indique. Se acaba de agregar código en un lugar al azar para recordarse a sí mismo que es necesaria la limpieza después ... ¿Por qué no hizo esto:
...
doOtherStuff();
... many lines later
if (dogIsBarking && smellsBad) {
startCleanup();
}
...
Y, siguiendo el asesoramiento de Robert Martin (Código Limpio), puede refactorizar lógica en el método más significativo:
...
doSomeStuff();
... many lines later
if (dogTookADump()) {
startCleanup();
}
...
boolean dogTookADump() {
return (dogIsBarking && smellsBad);
}
mucha Así, he visto y las porciones de código en la que las reglas simples, como anteriormente se podía seguir, sin embargo, la gente sigue añadiendo complicaciones y banderas para ninguna razón! Ahora, hay casos legítimos en los que podrían necesitarse banderas, pero en la mayoría de los casos son un estilo que los programadores llevan del pasado.
esto parece codificación horror :) sigo expresando mi disgusto por este tipo de codificación en cada pregunta que puedo encontrar relacionada con esto. If (condición) {return true;} else {return false;} ¡OMG! –
@MasterPeter: estoy de acuerdo, de hecho lo mencioné como una de mis preocupaciones sobre la "ignorancia del programador": http://stackoverflow.com/questions/423823. –
@Brian: Es posible que haya llegado antes que usted http://stackoverflow.com/questions/423823/whats-your-favorite-programmer-ignorance-pet-peeve/424005#424005 –