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'estendibilità del codice e la riduzione della sua complessità, eventualmente attraverso l'introduzione a posteriore di design pattern.[2]
Nella forma proposta originariamente da Martin Fowler, che è uno degli autori più influenti sull'argomento,[3] 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. Molti ambienti di sviluppo forniscono strumenti automatici per applicare le più tipiche micro-trasformazioni del codice usate nel refactoring.
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. In particolare, lo sviluppo basato su test (TDD) prevede una fase esplicita di refactoring al termine di ogni ciclo di modifica.
Software per il refactoring
Molti IDE forniscono supporto al refactoring del codice. Funzioni di refactoring sono incluse per esempio nei seguenti IDE:
Voci correlate
Note
- ^ [Martin Fowler in http://refactoring.com]
- ^ Joshua Kerievsky, Refactoring to Patterns
- ^ Fowler è tra l'altro l'autore del primo libro sull'argomento: Refactoring: Improving the Design of Existing Code
Bibliografia
- Martin Fowler, Kent Beck, John Brant e William Opdyke, Refactoring: Improving the Design of Existing Code
- Joshua Kerievsky, Refactoring to Patterns
- William C. Wake, Refactoring Workbook