refactorización

Upload: banyan-vines

Post on 09-Mar-2016

217 views

Category:

Documents


0 download

DESCRIPTION

Refactorización de código

TRANSCRIPT

  • Refactorizacin 1

    RefactorizacinLa refactorizacin (del ingls refactoring) es una tcnica de la ingeniera de software para reestructurar un cdigofuente, alterando su estructura interna sin cambiar su comportamiento externo.

    Refactorizacin de cdigoEn ingeniera del software, el trmino refactorizacin se usa a menudo para describir la modificacin del cdigofuente sin cambiar su comportamiento, lo que se conoce informalmente por limpiar el cdigo. La refactorizacin serealiza a menudo como parte del proceso de desarrollo del software: los desarrolladores alternan la insercin denuevas funcionalidades y casos de prueba con la refactorizacin del cdigo para mejorar su consistencia interna y suclaridad. Los tests aseguran que la refactorizacin no cambia el comportamiento del cdigo.La refactorizacin es la parte del mantenimiento del cdigo que no arregla errores ni aade funcionalidad. Elobjetivo, por el contrario, es mejorar la facilidad de comprensin del cdigo o cambiar su estructura y diseo yeliminar cdigo muerto, para facilitar el mantenimiento en el futuro. Aadir nuevo comportamiento a un programapuede ser difcil con la estructura dada del programa, as que un desarrollador puede refactorizarlo primero parafacilitar esta tarea y luego aadir el nuevo comportamiento.

    El trmino se cre como analoga con la factorizacin de nmeros y polinomios. Por ejemplo, puede serfactorizado como , revelando una estructura interna que no era visible previamente (como las dosraces en -1 y +1). De manera similar, en la refactorizacin del software, el cambio en la estructura visible puedefrecuentemente revelar la estructura interna "oculta" del cdigo original.La refactorizacin debe ser realizada como un paso separado, para poder comprobar con mayor facilidad que no sehan introducido errores al llevarla a cabo. Al final de la refactorizacin, cualquier cambio en el comportamiento esclaramente un bug y puede ser arreglado de manera separada a la depuracin de la nueva funcionalidad.Un ejemplo de una refactorizacin trivial es cambiar el nombre de una variable para que sea ms significativo, comouna sola letra 't' a 'tiempo'. Una refactorizacin ms compleja es transformar el trozo dentro de un bloque en unasubrutina. Una refactorizacin todava ms compleja es remplazar una sentencia condicional if por polimorfismo.Aunque la limpieza de cdigo se lleva realizando desde hace dcadas, el factor clave de la refactorizacin es realizarde manera intencionada la limpieza separndola de la adicin de funcionalidad nueva, usando un catlogo conocidode mtodos tiles de refactorizacin, para despus comprobar el cdigo ejecutando las pruebas unitarias, sabiendoque cualquier cambio en el comportamiento significa que se ha introducido un error.La refactorizacin es un aspecto importante de la programacin extrema.El libro de Martin Fowler Refactoring es la referencia clsica. Aunque la refactorizacin de cdigo se ha llevado acabo de manera informal durante aos, la tesis doctoral de William F. Opdyke (1993) es el primer trabajo conocidoque examina especficamente esta tcnica. Todos estos recursos proporcionan un catlogo de mtodos habituales derefactorizacin. Un mtodo de refactorizacin tiene una descripcin de cmo aplicar el mtodo e indicaciones sobrecundo debera (o no debera) aplicarse.La refactorizacin es un concepto tan importante que ha sido identificado por David A. Wheeler como una de lasms importantes innovaciones en el campo del software.[1]

  • Refactorizacin 2

    Refactorizacin de otros textosEl trmino refactorizacin se origin en el mbito de la programacin de ordenadores, pero el concepto se haaplicado a la modificacin de cualquier texto.En los sitios Wiki, la refactorizacin se refiere al proceso de reescribir y reorganizar el texto para abreviarlopreservando su contenido. Se aplica en especial en las discusiones, que de esta manera pueden ser hechas accesiblespara personas que estn interesadas en los argumentos ofrecidos en la discusin y en la informacin que se obtienede ella, ms que en la propia historia de la discusin. Puede ser difcil refactorizar de tal manera que estn de acuerdotodos los participantes de la discusin.

    EtimologaEl primer uso conocido del trmino refactorizacin en la literatura publicada se encuentra en el artculo Refactoring:An Aid in Designing Application Frameworks and Evolving Object-Oriented Systems, Proceedings of the Symposiumon Object Oriented Programming Emphasizing Practical Applications (SOOPPA) September, 1990, ACM porWilliam F. Opdyke y Ralph E. Johnson.[2] La tesis doctoral de William Opdyke titulada "RefactoringObject-Oriented Framework" (Universidad de Illinois) se public en 1992.[3] Tanto el trmino refactorizacin comola tcnica que define se usaban ya con toda seguridad antes.

    Referencias[1] (http:/ / www. dwheeler. com/ innovation/ innovation. html)[2] (http:/ / www. cs. ucd. ie/ staff/ meloc/ home/ papers/ thesis/ Chapter2. pdf)[3] (http:/ / martinfowler. com/ bliki/ EtymologyOfRefactoring. html)

    Enlaces externos Libro de Martin Fowler' sobre refactorizacin (http:/ / www. refactoring. com/ )

  • Fuentes y contribuyentes del artculo 3

    Fuentes y contribuyentes del artculoRefactorizacin Fuente: http://es.wikipedia.org/w/index.php?oldid=61603449 Contribuyentes: Calsbert, GermanX, Guille.hoardings, Pilaf, Platonides, Rsg, Sabbut, Taichi, Wikier, 2 edicionesannimas

    LicenciaCreative Commons Attribution-Share Alike 3.0 Unported//creativecommons.org/licenses/by-sa/3.0/

    RefactorizacinRefactorizacin de cdigo Refactorizacin de otros textos Etimologa Referencias Enlaces externos

    Licencia