Questo è un argomento frequente ... E ho letto molti post, articoli e sto per leggere il libro Working Effectively with Legacy Code
, ma prima e soprattutto perché ci vorranno più di un paio di giorni prima che arrivi il libro e vorrei tenere sotto controllo la sanità mentale, ecco la domanda:
Sto guardando codice non vecchio (1-2 anni) di una società che ho recentemente aderito e ho riscontrato così tante cattive pratiche che è quasi un rompersi ...
Duplicazione di codice massive, variabili globali (che sono usate in modo incoerente) e cose come l'uso di una classe factory per istanziare vari oggetti che estendono un oggetto padre ... e quindi chiamare metodi che non esistono nel genitore, ma sono definito in tutte le sottoclassi ...
Il codice funziona ... È rigorosamente QAed e i bug sono al minimo, il che va bene ... ma mi vergogno tantissimo guardando il codice ...
Recentemente ho chiesto al mio capo se potevo refactoring dell'intero codebase, mi ha chiesto come sarei stato in grado di garantire che le modifiche non si rompessero nulla, ho chiesto che potremmo investire del tempo per creare un'unità reale test, in quanto i loro cosiddetti unit test sono in realtà test end-to-end, quindi dobbiamo tracciare il log di debug molto tempo prima che qualcosa si rompa. Ha detto che non abbiamo abbastanza tempo per creare i test unitari (in realtà il codice non è molto testabile, dal momento che c'è un codice così stretto ... e avrei dovuto riscrivere la maggior parte di le classi), quindi in effetti non potrei nemmeno fare piccole modifiche al codice se non è elencato come bug nel tracker dei problemi ...
Quello che sto facendo in questo momento è un sacco di copia e incolla ... quindi messa a punto fine, dal momento che la logica non è esattamente la stessa ...
Che cosa posso fare? : /
Scusa, penso che mi stia sfogando qui e non c'è nulla che io possa fare a breve / medio termine ... sospiro