La duplicación de código es más barata que las abstracciones incorrectas
La mayoría de los desarrolladores aprenden el principio DRY pronto. Do Not Repeat Yourself.
Esta regla tiene sentido. Evita errores y ahorra tiempo.
Pero muchos desarrolladores siguen esta regla con demasiada rigidez. Intentan fusionar todo en una sola función o clase. Esto conduce a la sobreingeniería.
Cuando fuerzas dos piezas de lógica diferentes en una sola abstracción, creas problemas. Añades complejidad. Haces que el código sea difícil de leer.
Una abstracción incorrecta cuesta más que un poco de duplicación.
Si duplicas código, sabes exactamente dónde reside la lógica. Si necesitas cambiar una parte, la cambias allí.
Si usas una mala abstracción, debes cambiar todo lo que esté conectado a ella. Te arriesgas a romper funcionalidades que no tienen nada que ver con tu tarea actual.
Sigue estas reglas para ir sobre seguro:
- Escribe código para la tarea que tienes entre manos.
- Espera a que un patrón surja tres veces antes de abstraer.
- Prioriza la legibilidad sobre el ahorro de unas pocas líneas de código.
- Acepta que cierta duplicación es saludable.
Deja de intentar que cada línea de código sea perfecta. Concéntrate en hacer que tu código sea fácil de cambiar.