Duplicação de Código vs. Abstrações Erradas
Desenvolvedores frequentemente enfrentam um dilema.
Você deve escolher entre o princípio Don't Repeat Yourself ou permitir alguma duplicação de código.
O DRY é uma regra fundamental no design de software. Mas persegui-lo excessivamente cria um novo problema: você cria uma abstração errada.
Uma abstração errada custa mais caro do que código duplicado.
Queremos escrever código elegante. Queremos construir lógica reutilizável. Queremos corrigir um bug em um único lugar e vê-lo corrigido em todos os outros. Esse objetivo parece correto.
Mas a abstração prematura mata a velocidade do projeto. Ela prejudica a facilidade de manutenção do seu código.
Quando você abstrai cedo demais, enfrenta estes problemas:
- Complexidade aumentada. Abstrações ruins adicionam camadas de confusão.
- Código rígido. Torna-se difícil alterar uma parte sem quebrar outras.
- Lógica oculta. Você gasta mais tempo rastreando o código do que escrevendo-o.
Às vezes, a duplicação é a escolha pragmática. Ela mantém seu código simples e claro. Permite que você altere partes do seu sistema de forma independente.
Não construa uma solução genérica para um problema que você ainda não entende completamente. Espere até que o padrão esteja claro.