Sono attualmente impegnato in un progetto in cui uno dei miei colleghi sviluppatori costantemente aggiusta ogni cosa che sta facendo. Stiamo usando metodologie agili. So che il refactoring è una buona cosa da fare mentre risolvo alcuni problemi, mantiene il codebase carino e pulito, ma la mia domanda è: qual è il limite, quanti file si dovrebbero toccare al massimo? Un refactoring eccessivo ci morde a lungo termine?
A volte sembra che possa introdurre dei bug (sebbene il sistema sia strongmente testato) e che renda il processo di revisione piuttosto complicato; rivedere le modifiche in 60-70 file quando la modifica originale avrebbe dovuto interessare solo circa il 10-20.
Sul progetto i biglietti che stiamo ottenendo sono piuttosto piccoli, di solito non devono essere toccati più di 10-20 file e questo sviluppatore ha una media di circa 50. Sembra sbagliato e non ho trovato il modo di convincerlo che non lo è. Dice che tutto è testato, quindi tutte le modifiche migliorano solo il codice base. Infine, presumo che questo refactoring potrebbe anche rallentarlo, perché cambia solo tante cose dannatamente tutto il tempo! : D
Qualche idea?
Il mio punto di vista personale è che il refactoring dovrebbe essere fatto, ma in genere dovrebbe essere limitato alle classi che stanno cambiando per il ticket e, qualora si verificasse un bisogno di un refactoring più grande, dovrebbe essere un ticket stesso. In alcuni casi, mi ritrovo a non cambiare nemmeno le piccole cose, perché "ho refactored abbastanza per questo ticket così com'è.", Mi sembra come quando raggiungo il limite di refactoring che ho fissato nella mia mente, mi fermo e basta apportare eventuali modifiche non necessarie alla base di codice e concentrarsi solo sul confezionamento del ticket ..
Modifica: Mi sono reso conto di aver letto le risposte e domande simili sui programmatori stackexchange (che ho appena scoperto, che bel posto!) che il mio problema principale è che quello che ho descritto è un singolo commit. Devo dire a tutti che sono liberi di introdurre il refactoring, ma assicurati di mantenerlo in commit separati per facilitare il processo di revisione.
Modifica: un altro aspetto che ho trovato problematico è il conflitto di unione. Questi refactoring finiscono per costare tempo ad altri membri che lavorano su stessi pezzi di codice ogni tanto. Nulla di sostanziale, ma se tutti i membri del team avessero apportato così tanto refactoring avremmo sicuramente molti più conflitti di fusione. Non dicendo che questa è la fine del mondo, mettila semplicemente sul tavolo.