Refactoring: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica
Nessun oggetto della modifica
Riga 2:
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 (informatica)|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 sorgente|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 sorgente|codice]] senza modificarne il comportamento esterno",<ref>[Martin Fowler in [http://refactoring.com refactoring.com]</ref> 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]].<ref>Joshua Kerievsky, ''Refactoring to Patterns''</ref>
 
Nella forma proposta originariamente da [[Martin Fowler]], che è uno degli autori più influenti sull'argomento,<ref>Fowler è tra l'altro l'autore del primo libro sull'argomento: ''Refactoring: Improving the Design of Existing Code'', e mantiene il sito [http://refactoring.com refactoring.com], che raccoglie molte risorse sul refactoring.</ref> 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 [[Integrated development environment|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 [[automazione del collaudo del software|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 [[test driven development|sviluppo basato su test]] (TDD) prevede una fase esplicita di refactoring al termine di ogni ciclo di modifica.
Riga 29:
* Joshua Kerievsky, ''Refactoring to Patterns''
* William C. Wake, ''Refactoring Workbook''
 
==Collegamenti esterni==
* [http://refactoring.com refactoring.com], raccolta di risorse sul refactoring mantenuta da [[Martin Fowler]]
 
== Voci correlate ==