Refactoring: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Etichetta: Annullato
Aggiunte non pertinenti, 90% non è refactoring, molto POV, nessuna fonte, errori vari. Rollback manuale.
Etichetta: Ripristino manuale
 
Riga 6:
 
L'azione di refactoring mira a eliminare il problema (per esempio portando a fattor comune il codice duplicato) attraverso una serie di "micro-passi" il più possibile semplici.<ref name="fowlerbook"/> Il requisito di semplicità delle singole modifiche ha due giustificazioni: ridurre il rischio di introdurre errori con la modifica, e rendere ipotizzabile l'esecuzione automatica della modifica stessa da parte di strumenti integrati negli [[Ambiente di sviluppo integrato|IDE]]. Gran parte della letteratura sul refactoring descrive tipi di micro-modifiche di uso comune che, combinate in sequenza, possono portare a ristrutturazioni anche radicali del software, e molte delle azioni di refactoring proposte in letteratura sono implementate da IDE moderni come [[Eclipse (informatica)|Eclipse]].
 
Uni dei classici esempi di progetto di refacforing è la riscrittura del software in un altro linguaggio di programmazione oppure in un altro framework di sviluppo o paradigma (ad esempio per rendere cloud o SaaS un prodotto). Altro esempio è il cambiamento di architettura (fronr end, back end, database, servizi o [[middleware]]). Ad esempio, un refactoring potrebbe essere quello che "sposta" dal codice tutta una serie di funzioni e parametri per allocarle in file di configurazione, rendendo molto più flessibile la personalizzazione e impostazione.
 
Il refactoring è un elemento integrante di molti processi di sviluppo fortemente basati su [[automazione del collaudo del software|test automatici]]; per esempio, lo [[test driven development|sviluppo basato su test]] (TDD) prevede una fase (obbligatoria ed esplicita) di refactoring al termine di ogni ciclo di modifica. Fra i due concetti esiste infatti un legame molto stretto: rieseguire eventuali test automatici al termine di ogni micromodifica fornisce infatti un più alto grado di confidenza che non siano stati introdotti errori; questo consente di prendere in considerazione anche modifiche particolarmente pericolose (come lo spostamento di codice fra classi o la modifica delle relazioni di [[ereditarietà (informatica)|ereditarietà]]).