¿Te ha pasado que, cuando estás implementando un proyecto, te toca escribir un condicional con tres o más caminos? Algo tipo:
function procesarPedido(pedido) {
if (pedido.estado === "nuevo") {
validarStock(pedido);
} else if (pedido.estado === "pagado" || pedido.esUrgente) {
generarFactura(pedido);
enviarExpress(pedido);
} else if (pedido.estado === "pagado") {
generarFactura(pedido);
} else if (pedido.estado === "cancelado") {
revertirPago(pedido);
}
}
Bien, pues podemos asumir que un bloque como estos es inofensivo, pero de una vez te advierto que puede convertirse en una de las partes más frágiles de tu sistema.
El if/else no es malo por sí solo (tampoco el switch). Sin embargo, puede volverse difícil de manejar cuando:
¿Quieres leer la edición completa?