Tengo que extender un módulo existente de un proyecto. No me gusta cómo se ha hecho (hay muchos antipatrones involucrados, como código copiado / pegado). No quiero realizar una refactorización completa por muchas razones.
Debería:
- crear nuevos métodos usando la convención existente, incluso si me parece mal, para evitar confusiones para el próximo mantenedor y ser coherente con la base del código?
o
- ¿Trato de usar lo que siento mejor incluso si está introduciendo otro patrón en el código?
Precisión editada después de las primeras respuestas:
El código existente no es un desastre. Es fácil de seguir y entender. PERO está introduciendo un montón de código repetitivo que se puede evitar con un buen diseño (el código resultante podría ser más difícil de seguir entonces). En mi caso actual, es un buen módulo DAO JDBC (plantilla interna de resorte), pero ya me he encontrado con este dilema y estoy buscando otros comentarios de desarrollo.
No quiero refactorizar porque no tengo tiempo. E incluso con el tiempo será difícil justificar que todo un módulo que funcione perfectamente necesita ser refactorizado. El costo de refactorización será más pesado que sus beneficios. Recuerde: el código no es desordenado ni demasiado complejo. No puedo extraer algunos métodos allí e introducir una clase abstracta aquí. Es más una falla en el diseño (creo que es el resultado del extremo 'Keep It Stupid Simple')
Entonces, la pregunta también se puede hacer así:
usted, como desarrollador, ¿prefiere mantener un código aburrido y estúpido fácil O tener algunos ayudantes que hagan el código aburrido estúpido en su lugar?
La desventaja de la última posibilidad es que tendrá que aprender algunas cosas y tal vez también tendrá que mantener el código aburrido y estúpido hasta que se realice una refactorización completa)