Devo estendere un modulo esistente di un progetto. Non mi piace il modo in cui è stato fatto (un sacco di anti-pattern coinvolti, come il codice copia / incollato). Non voglio eseguire un refactor completo per molte ragioni.
Dovrei:
- creare nuovi metodi usando le convenzioni esistenti, anche se mi sembra sbagliato, per evitare confusione per il manutentore successivo ed essere coerenti con la base di codice?
o
- provare a usare ciò che mi sento meglio anche se introduce un altro modello nel codice?
Precison modificato dopo le prime risposte:
Il codice esistente non è un disastro. È facile da seguire e capire. MA sta introducendo un sacco di codice del boilerplate che può essere evitato con un buon design (il codice risultante potrebbe diventare più difficile da seguire). Nel mio caso attuale è un buon vecchio modulo DAO JDBC (modello primavera incorporato), ma ho già riscontrato questo dilemma e sto cercando altri feedback degli sviluppatori.
Non voglio refactoring perché non ho tempo. E anche con il tempo sarà difficile giustificare la necessità di rifattorizzare un intero modulo perfettamente funzionante. I costi di refactoring saranno più pesanti dei suoi benefici. Ricorda: il codice non è disordinato o troppo complesso. Non posso estrarre pochi metodi lì e introdurre qui una classe astratta. È più un difetto nel design (risultato dell'estrema "Keep It Stupid Simple" penso)
Quindi la domanda può anche essere posta in questo modo:
Tu, come sviluppatore, preferisci mantenere un codice noioso stupido o O avere degli aiutanti che faranno il codice noioso stupido al tuo posto?
L'aspetto negativo dell'ultima possibilità è che dovrai imparare alcune cose e forse dovrai mantenere anche il codice stupido noioso e stupido fino a quando non viene eseguito un refactoring completo)