A veces soy culpable de copiar y pegar, pero trato de eliminar la duplicación siempre que sea posible. La excepción es cuando tengo una función que llama a otras funciones y es muy lenta. A veces, el contenido de las subfunciones se puede combinar para la velocidad, o las consultas SQL subyacentes se pueden combinar en menos o solo una.
Ejemplo: En la gestión de inventario, la cantidad mínima disponible para un artículo es igual a la cantidad en su reserva de trabajo más la cantidad en stock de seguridad. Las existencias de seguridad equivalen a la mitad de la reserva de trabajo.
Function workingReserve(itemCode, someDate)
' Inside here is a looping structure that adds up the requirements for the next six weeks (because that's how long it takes between reorder and receipt).
End Function
Function safetyStock(itemCode, someDate)
safetyStock = workingReserve(itemCode, someDate)/2
End Function
Function minimumOnHand(itemCode, someDate)
minimumOnHand = workingReserve(itemCode, someDate) + safetyStock(itemCode, someDate)
End Function
Pido disculpas por el hecho de que esté escrito en VB, pero es de una función de Excel VBA.
En efecto, la función workingReserve se ejecuta dos veces en los mismos datos. El rendimiento puede mejorarse combinando la lógica empresarial de la función safetyStock() en la función minimumOnHand().
Function minimumOnHand(itemCode, someDate)
minimumOnHand = workingReserve(itemCode, someDate) * 1.5
End Function
En el código real, no tengo comentarios en el código que explica la lógica de negocio, pero ellos se han omitido aquí por razones de brevedad.
Si bien la codificación Huffman puede parecer el objetivo final, a uno le gustaría ver la minimización de la duplicación como un principio fuerte en lugar de una regla absoluta. –