[HOME PAGE] [STORES] [CLASSICISTRANIERI.COM] [FOTO] [YOUTUBE CHANNEL]

Refacció - Viquipèdia

Refacció

De Viquipèdia

Refacció és el procés mitjançant el qual es fa una reescriptura d'un material escrit per tal de facilitar la seva comprensió i millorar-ne la seva estructura interna. Aquest procés es duu a terme conservant el significat del text i el seu comportament.

Taula de continguts

[edita] Refaccionant codi font

En enginyeria del programari, el terme refacció, en anglès refactoring, s'empra per a descriure el fet de modificar codi font sense canviar-ne el comportament observat des de l'exterior. La refacció sovint és una part del cicle de vida del programari: els desenvolupadors alternen entre la producció de noves funcionalitats i la refacció de codi ja existent per tal de millorar-ne la consistència interna i la claredat. Les proves de regressió asseguren que la refacció no ha canviat el comportament del codi observat des d'altres mòduls del programa.

El terme es una analogia amb la factorització de nombres i de polinomis. Per exemple, x2 − 1 factoritza a (x + 1)(x − 1), revelant una estructura interna que abans no era visible (les dues arrels +1 i -1). De forma similar quan es refacciona el programari apareixen estructures que restaven amagades en el codi original.

Un exemple, trivial, de refacció és canviar el nom d'una variable de manera que doni una pista del seu significat dins del codi. Per exemple, renombrar una variable anomenada 'i' a 'interes'. Un exemple més complex de refacció seria moure part del codi d'un mètode o funció a un altre mètode o funció de forma que es pugui utilitzar a més d'un lloc i s'evitin duplicitats, a part de reduir la mida del codi del mètode o funció original. En els següents diagrames es pot veure, de forma simplificada, un exemple de refacció d'una classe per tal de reduir-ne el mida i la complexitat. Es passaria de la situació "complexe":

Imatge:persona-ref.png

cap a:

Imatge:pers-telf-ref.png

Aquesta refacció permetria tractar les dades d'una forma més concreta i senzilla. Com s'observa, l'interfície oferta per la classe es manté constant durant la refacció.

Aquests processos de refacció s'han produït de forma desorganitzada des dels inicis de la programació. Les metodologies modernes de programació, com ara la programació extrema, preveuen fases en el cicle de vida del programari on únicament es fan processos de refacció.

Una referència clàssica de la refacció del codi font és el llibre de Martin Fowler anomenat Refactoring. Tot i que, com s'ha dit, la refacció s'ha dut a terme informalment durant anys, l'article de 1993 de William F. Opdyke és el primer a analitzar la refacció.La refacció és un concepte d'una importància cabdal, tant és així que ha estat qualificada com una de les innovacions més importants del programari

[edita] Eines de refacció

Un factor molt important a tenir en compte a l'hora de refaccionar el codi és el conjunt d'eines que emprem per a editar el codi font. Cal tenir present que el procés de refaccionar sense una eina és un procés totalment manual i, per tant, subjecte a errors. Pensis en el cas que s'hagi de canviar el nom d'una classe per tal que reflecteixi millor la seva funció dins de l'aplicació. El procés implica recórrer tot el codi buscant la instanciació de la classe i substituir-ne el nom. Eines com Eclipse, NetBeans, Anjuta permeten automatitzar aquest, i altres tipus de refaccions.

[edita] Altres usos de la refacció

El terme refacció o refactoring també s'aplica quan es modifica un altre tipus de text. Per exemple, a les planes Viqui, la refacció es refereix al procés de reescriptura i reorganització del text per tal d'escurçar-lo i organitzar-lo tot i mantenir la quantitat de informació que conté. Un cas clar en serien les discussions, on algú pot estar interessat en veure els arguments que es fan servir però no estigui interessat en veure l'evolució de la discussió.

[edita] Referències

  • Martin Fowler: Refactoring. Improving the Design of Existing Code, Addison-Wesley Professional 1999, ISBN 0201485672
  • William C. Wake: Refactoring Workbook, Addison-Wesley, ISBN 0-321-10929-5
  • Joshua Kerievesky: Refactoring To Patterns, Addison-Wesley, ISBN 0321213351

[edita] Vegis també

[edita] Enllaços externs