Un esempio di semplicità sul Refactoring

Gino sa tutto sul Refactoring: sa fare refactoring bendato e con una mano legata dietro la schiena ((( minchia! )))

Si è seduto alla tastiera col suo collega e ha 2 ore di tempo per introdurlo al refactoring.  Per farla semplice da dove comincia?


Gino comincia dal codice che il collega ha appena scritto. Fa check-in per avere una baseline sicura a cui fare rollback e usa un tool automatico per evitare errori insidiosi. Coimincia a fare questi 6 refactoring insieme al collega:

* Estrae codice dai metodi troppo lunghi (>> 30 linee di codice)
* Cerca i commenti e modifica il codice in modo che si spieghi da solo
* Scorre i nomi di metodi e variabili e rinomina quelli poco chiari e quelli poco descrittivi
* Guarda i blocchi condizionali (If, switch, for, ...) e vede se li può eliminare
* Trova parti di codice duplicate e le elimina
* Scopre cosa fa ogni metodo e si chiede se si trova sulla classe giusta Inizia ogni punto mostrando come fare e quindi lascia continuare al suo collega, interviene quando serve


Questa domanda ammette più risposte egualmente valide. La sfida di Gino qui ora  è cercare un modo ancora più semplice di questo per cominciare col refactoring.

Ti viene in mente un altro modo semplice per iniziare ?   Qualcosa da togliere o sostituire nella lista di Gino ?



Tags :   |  |  | 

Print | posted @ Monday, March 2, 2009 1:22 PM

Comments on this entry:

Gravatar # re: Un esempio di semplicità sul Refactoring
by Emanuele DelBono at 3/2/2009 1:34 PM

Ultimamente trovo molto utile misurare il codice con uno strumento tipo SourceMonitor o NDepend per identificare subito i punti critici in cui conviene fare refactoring.
Una volta individuati applico più o meno la tua ricetta.
Gravatar # re: Un esempio di semplicità sul Refactoring
by Alessandro Scardova at 3/2/2009 1:59 PM

Io inizierei a sbendare Gino: un tool di refactoring è inutile senza una buona analisi del codice esistente.
Gravatar # re: Un esempio di semplicità sul Refactoring
by Alberto Brandolini at 3/2/2009 6:16 PM

hmmm... molto dipende anche dall'esistenza o meno di test. Su mio vecchio codice, interrotto e ripreso ma con un buon coverage, sono andato a guardare che cosa non era testato, ed in molti casi non era nemmeno usato. Togliere.
In altri casi la cosa è decisamente più complessa, sei senza JavaDoc su codice incomprensibile e pure senza test, circondato da altro codice incomprensibile o inutile (es. un Singleton con tre costruttori... :-( ) Prima di avere la confidenza necessaria al refactoring ti servono un po' di test...
Comments have been closed on this topic.