"Il refactoring è il processo di cambiare un sistema software in modo tale da non alterare il comportamento esterno del codice, ma migliorarne la struttura interna. È un modo disciplinato di pulire il codice che minimizza le possibilità di introdurre bug. In sostanza quando si rifattorizza si sta migliorando il design del codice dopo che è stato scritto". - Martin Fowler (Padre del Code Smell).
Anche se il refactoring non aggiunge caratteristiche o funzionalità in un sistema software, è un'arma tagliente per gli sviluppatori nelle loro attività di manutenzione. Rende un sistema software più facile da capire e più economico da modificare senza cambiare il suo comportamento osservabile cambiando la sua struttura interna.
Gli scopi del refactoring secondo M. Fowler are stated in the following:
- Refactoring Improves the Design of Software
- Refactoring Makes Software Easier to Understand and Maintain
- Refactoring Helps Finding Bugs
- Refactoring Helps Programming Faster
- Increased re-usability
You will find an example of refactoring in this link:
What is meant by code refactoring? Explain with example.