How does it takes place in the Software development process and how far it effects the system?
Il refactoring spietato è una pratica standard in tutti i team con cui lavoro. L'enfasi è su "spietato". Se il codice non "sente" correttamente, probabilmente non lo è. In genere questo è chiamato "odore del codice".
In generale, ci rifattiamo il prima possibile, di solito in un momento in cui tutti i test passano. Smettiamo di refactoring una volta che non riusciamo a pensare ad altro modo per semplificare il codice.
A volte ci rifattiamo su un particolare modello di progettazione, ad es. quando abbiamo identificato la necessità di una particolare interfaccia. A volte cambiamo l'implementazione per risolvere un problema di prestazioni. In questo senso ci sono casi in cui il refactoring influisce sul sistema. In generale, tuttavia, i nostri refactoring non modificano il comportamento del sistema.
Does Refactoring using these tools really speed up the process of development/maintenance?
L'opzione migliore sarebbe avere i dati per rispondere a questa domanda. Io non. Tuttavia, in base all'osservazione nella mia esperienza, il codice completamente refactored è molto più facile da utilizzare. È più facile da estendere. È più facile individuare la fonte di un bug. Rimuovendo i duplicati del codice non solo segui il principio DRY (Non ripeti te stesso) ma eviti anche di dover correggere lo stesso bug più di una volta.
L'uso degli strumenti è obbligatorio. Il refactoring manuale è possibile ma gli strumenti possono occuparsi della maggior parte dei casi e sono in grado di risparmiare tempo reale.
Sulla base delle mie osservazioni e della mia esperienza di lavoro con numerosi team e sistemi di refactoring supportati da strumenti, accelero sia lo sviluppo che la manutenzione del codice sorgente.