Refactoring: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
Aggiunte non pertinenti, 90% non è refactoring, molto POV, nessuna fonte, errori vari. Rollback manuale. Etichetta: Ripristino manuale |
|||
(6 versioni intermedie di 4 utenti non mostrate) | |||
Riga 5:
Benché il concetto generale di refactoring possa essere applicato in qualsiasi contesto di sviluppo software, nelle [[metodologie agili]] e nell'[[extreme programming]] il termine è usato prevalentemente nel contesto della [[programmazione orientata agli oggetti]]. In questa accezione stretta (proposta originariamente da [[Martin Fowler]], che è tuttora 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 è in genere motivato dalla rilevazione di un ''[[code smell]]''.<ref name="fowlerbook">V. M. Fowler, ''Refactoring''</ref> Per esempio, un metodo potrebbe apparire eccessivamente lungo e complesso, o contenere molto codice duplicato anche in un altro metodo.
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 [[
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à]]).
== Software utilizzati ==
Molti [[
* [[
* [[Eclipse (informatica)|Eclipse]] (per Java)
* [[NetBeans]] (per Java)
Riga 38:
==Collegamenti esterni==
* {{FOLDOC||refactoring}}
* [http://refactoring.com refactoring.com], raccolta di risorse sul refactoring mantenuta da [[Martin Fowler]]
|