Eu tenho que estender um módulo existente de um projeto. Não gosto da maneira como isso foi feito (muitos anti-padrões envolvidos, como código de copiar / colar). Não quero realizar um refator completo por vários motivos.
Eu devo:
- criar novos métodos usando a convenção existente, mesmo que eu ache errado, para evitar confusão para o próximo mantenedor e ser consistente com a base de código?
ou
- tente usar o que me sinto melhor, mesmo se estiver introduzindo outro padrão no código?
Precison editado após as primeiras respostas:
O código existente não está uma bagunça. É fácil de seguir e entender. MAS está introduzindo muitos códigos padrão que podem ser evitados com um bom design (o código resultante pode se tornar mais difícil de seguir). No meu caso atual, é um bom e velho módulo DAO JDBC (modelo de mola interno), mas eu já encontrei esse dilema e estou procurando outro feedback do desenvolvedor.
Não quero refatorar porque não tenho tempo. E mesmo com o tempo, será difícil justificar que todo um módulo funcionando perfeitamente precise ser refatorado. O custo de refatoração será mais alto que seus benefícios. Lembre-se: o código não é confuso ou é complexo demais. Não consigo extrair alguns métodos lá e introduzir uma classe abstrata aqui. É mais uma falha no design (resultado do extremo 'Keep It Stupid Simple', eu acho)
Portanto, a pergunta também pode ser feita da seguinte maneira:
você, como desenvolvedor, prefere manter um código chato e estúpido OU OU ter alguns ajudantes que farão o código chato no seu lugar?
A desvantagem da última possibilidade é que você terá que aprender algumas coisas e talvez também precise manter o código chato e estúpido até que uma refatoração completa seja concluída)