declaración de ramificación Vs micro-ramificación


statement branchingmicro-branching strategies

ramificación de sentencias

Cualquier estructura que altera la secuencia de ejecución dentro del ámbito global o funcional.
Esto incluye:

if
else
switch
for
while

Las sentencias están diseñadas para ejecutarse de forma no lineal. Además del evidente efecto de hinchazón, la ramificación de sentencias tiende a volverse poco intuitiva a medida que avanza.

micro-ramificación

Lógica condicional contenida dentro de una sentencia que no afecta a la secuencia de ejecución de la sentencia.
Los siguientes operadores facilitan la micro-ramificación:

ternary (<cond> ? a : b)
&&
||

La lógica fluye secuencialmente de arriba a abajo e incluso de izquierda a derecha. No hay bifurcaciones en el camino. Solo hay una sentencia de retorno y está al final, donde esperamos que esté. Lo mejor de todo es que es corto. Nada se desperdicia. De hecho, es lo suficientemente conciso como para ser apenas procedimental en absoluto.

Las alternativas a la ramificación de sentencias se dividen en dos amplias categorías: micro-ramificación y sin ramificación en absoluto

Estrategias de micro-ramificación

Guardias (&&) y valores predeterminados (||)

//invocar callback si hay uno
callback && callback();
//retrasar por argumento o 20
delayBy(delay || 20);
//eliminar el nodo de su padre
node && node.parent && node.parent.removeChild(node);
//registrar una prueba en la consola si tenemos una
window.console && console.log("test");

Algunas cosas tienen un lugar natural. Los pájaros en el cielo, los peces en el mar y una declaración de retorno al final de una función.

Bibliografía:
https://javascriptweblog.wordpress.com/2010/07/26/no-more-ifs-alternatives-to-statement-branching-in-javascript/