Sono l'unico sviluppatore di un progetto che, come per qualsiasi progetto software, potrebbe essere preso da qualcun altro in futuro.
Diciamo che ho usato il modello X per implementare la funzione A. Dopo aver sviluppato e finito la funzione, mi rendo conto di poter implementare la stessa funzione usando il modello Y, di cui ho appena appreso. Ma la funzione A funziona bene e il refactoring da X a Y richiede molto tempo e offre pochi vantaggi.
Quindi è il momento di implementare la funzione B. È simile ad A, ma questa volta voglio cogliere l'occasione per giocare con il modello Y. Sono contento del risultato finale, meglio di quando faccio la funzione A, ma ora il mio codice usa due diversi modelli, X e Y, per caratteristiche simili.
Ma non vi è alcun motivo reale per utilizzare modelli diversi, tranne per il fatto che durante la creazione della funzionalità AI non era abbastanza abile da utilizzare lo stesso modello della funzionalità B.
Si noti che questa domanda non riguarda la scelta del modello giusto per un determinato problema ; si tratta di due modelli che coesistono nella base di codice per risolvere problemi simili, che potrebbero essere ridotti a uno a cui è stato concesso il tempo sufficiente per il refactoring.
- Quel codice ha un odore?
- Quali sono gli svantaggi di mantenere il codice sorgente in questo modo?
- Dovrei attenermi all'utilizzo di un solo modello? cioè il refactor A per usare Y o continuare a usare X quando si scrive B?
- Come, nella fonte, posso comunicare che il motivo per cui esistono due diversi modelli per caratteristiche simili non è essenzialmente un motivo?
- Mi sto preoccupando troppo di ciò che il prossimo sviluppatore pensa del mio codice?