Refactoring
Il refactoring o rifattorizzazione è un termine usato nel campo dell'ingegneria del software per indicare il processo di modifica della struttura interna di un programma per computer eseguito senza modificarne il comportamento funzionale esterno o le funzionalità esistenti. Tipicamente, il refactoring viene applicato al fine di migliorare le proprietà non funzionali del software, quali la leggibilità e la struttura del codice, la sua aderenza al paradigma di programmazione, il suo grado di manutenibilità, la sua estensibilità, le prestazioni, e così via.
In ingegneria del software, il refactoring (o code refactoring) è una "tecnica strutturata per modificare la struttura interna di porzioni di codice senza modificarne il comportamento esterno",[1] applicata per migliorare alcune caratteristiche non funzionali del software. I vantaggi che il refactoring persegue riguardano in genere un miglioramento della leggibilità della manutenibilità, della riusabilità e dell'estensibilità del codice e la riduzione della sua complessità. Nella forma proposta originariamente da Martin Fowler, che è uno degli autori più influenti sull'argomento, il refactoring viene eseguito attraverso una serie di micro-passi, ciascuno dei quali consiste di una modifica molto limitata (e quindi che comporta un basso rischio di introdurre errori), ma che combinati fra loro possono portare a ristrutturazioni significative del codice.
Il refactoring è spesso associato all'uso di tecniche di test automatici sul codice, applicati a valle di ciascuna micro-modifica per verificare che le funzioni del codice siano state correttamente preservate. Inoltre, il refactoring viene spesso eseguito con l'ausilio di strumenti automatici, che consentono al programmatore di attivare interattivamente ciascuna modifica, portata a termine in modo automatico dell'ambiente di sviluppo.
Software per il refactoring
Molti IDE forniscono supporto al refactoring del codice. Funzioni di refactoring sono incluse per esempio nei seguenti IDE:
Note
- ^ [Martin Fowler in http://refactoring.com]