Sto sviluppando un'applicazione, che al momento contiene circa 150.000 righe di codice. Lo sviluppatore precedente non ha utilizzato alcuna disciplina durante la scrittura del codice. L'applicazione è in produzione ma è continuamente sviluppata.
Ho letto il libro di Martin Fowler ( Patterns of Enterprise Application Architecture ) e parla di " Script di transazione " e" Oggetti di accesso ai dati ". Questi sono i modelli usati cioè c'è una classe chiamata Persona, che contiene tutto ciò che riguarda la Persona e una classe chiamata Ordine con tutto ciò che riguarda l'Ordine. Le funzioni non sono riutilizzabili perché contengono tutto, ad esempio logica di accesso ai dati, logica aziendale, ecc. Ad esempio, Person.GetPerson si connetterà al database per trovare la persona, verificare l'età della persona, ottenere tutti gli ordini collegati alla persona ecc.
Sto pensando di introdurre ciò che Martin Fowler definisce un gateway dati tabella . Lo vedo come un progetto di refact a più lungo termine. Il problema è che ciò significherà incoerenza per cominciare con la logica di accesso ai dati che sarà contenuta nel nuovo Gateway, ma anche nelle classi Script di Transaction (dove l'altro sviluppatore lo ha inserito)? È una cattiva idea andare contro lo stile di codifica degli sviluppatori originali?