Nomen Omen: c'è Refactoring e Refactoring

Spesso (è successo anche a WPC) mi viene chiesto quale sia l'impatto dell'uso sistematico del Refactoring o della implementazione di test unitari all'interno di un processo di sviluppo. La risposta breve è davvero tale (ossia... Breve): tipicamente infatti "spedisco" qui il richiedente. La generalizzazione (ovviamente non nel senso OO del termine) è però un processo pericoloso: l'ottimo post di Marco rischia infatti di generare nei meno esperti l'errata convinzione che il tempo necessario al refactoring sia "annegabile" poichè composto da tanti piccoli "passi" individualmente sempre poco onerosi. Non so voi, ma per quanto mi riguarda alcuni pattern di refactoring sono tutt'altro che brevi da applicare. Un esempio per tutti: "Extract Interface", il cui utilizzo prevede (cit.):

  • Create an empty interface
  • Declare the common operations in the interface
  • Declare the relevant class(es) as implementing the interface
  • Adjust client type declarations to use the interface

Lungi da me l'idea di contestare il Sommo (chi mi conosce sa quale sia l'ammirazione -che alcuni sostengono essere eccessiva- che provo per quest'Uomo), ma secondo me la succitata mechanics richiederebbe la modifica del primo passo in: Define (and name) an empty interface. Ecco: io a volte passo _molto_, _molto_ tempo a riflettere sul nome da attribuire alla nuova interfaccia (che percepisco come fortemente caratterizzante). Potere della semantica... Nomen omen (nel nome il destino): siete d'accordo?

Technorati tags:

posted @ lunedì 29 novembre 2004 14:37

Print

Comments on this entry:

# re: Nomen Omen: c'è Refactoring e Refactoring

Left by Lorenzo Barbieri at 29/11/2004 16:06
Gravatar
+3!

# re: Nomen Omen: c'è Refactoring e Refactoring

Left by Davide Mauri at 29/11/2004 16:44
Gravatar
Sono d'accordissimo anche io...infatti è proprio pensando all'Extract Interface che ho chiesto ad Andrea nel suo post (http://blogs.ugidotnet.org/PenPal/archive/2004/11/24/6090.aspx) quanto tempo è stato necessario a fare il refactoring di una soluzione seppurt piccola (ma molto ben fatta) come IMHO.
Fin che si tratta di cambiare nomi a classi o a varibili, il problema non si pone, ma quando si passa fare cose più pensati il dubbio del tempo necessario un pò mi rimane....credo cmq che la soluzioni stia come al solito nel mezzo: un buon design iniziale (che però non sfoci nell'eccesso altrimenti la soluzione non verrebbe mai rilasciata) ed un buon refactoring anche questo senza eccessi, altrimenti probabilmente si sviluppa senza avere bene in mente l'obbiettivo finale.

Your comment:



 (will not be displayed)


 
 
 
Please add 1 and 5 and type the answer here:
 

Live Comment Preview:

 
«novembre»
domlunmarmergiovensab
31123456
78910111213
14151617181920
21222324252627
2829301234
567891011