Refarctoring

Solo disponible en BuenasTareas
  • Páginas : 9 (2020 palabras )
  • Descarga(s) : 0
  • Publicado : 14 de junio de 2011
Leer documento completo
Vista previa del texto
Refactoring |
Tarea #2 |
Andrea Morales Badilla |

Refactoring
Según el libro de Fowler, Refactoring puede tener dos definiciones:
* Refactoring Como sustantivo: se refiere a cambio hecho en la estructura interna del programa, para hacerlo más fácil de entender y más barato de cambiar sin alterar el comportamiento observable.
* Refactor como verbo: se trata de reestructurar elprograma aplicando una serie de técnicas para limpiar el código sin cambiar el comportamiento observable.
El refactoring provee técnicas para limpiar código de una manera controlada y eficiente.
El refactoring tiene como objetivo limpiar el código para que sea más fácil de entender y modificar. Esta acción consigue, como efecto lateral, mejorar el diseño del software y ayudar a encontrar erroresocultos que puede que no hayan salido a la luz todavía.
En general Refactoring es un tipo de reestructuración de código que se aplica en desarrollos orientados a objetos y que se define como “el proceso de cambiar el software de un sistema de manera que no altere su comportamiento externo pero mejorando su estructuración interna” (Fowler1, 2000).
Es importante destacar que al hacer refactoring loúnico que altera en el programa es la estructura interna, NO cambia el comportamiento observable del programa, o sea, este sigue teniendo la misma funcionalidad que antes}
A la hora que hacemos refactoring a algún programa es importante tener claro con qué propósito lo realizamos. Una manera fácil de comprender lo anterior es con la metáfora de los dos sombreros de Kent Beck's, quien dice quecuando se usa refactoring para desarrollar algún programa, se dividen en 2 actividades: adicionar funciones (hacer código nuevo) y refactor (arreglar código). Cuando se adiciona una función se cambia código y se adicionan nuevas capacidades al programa. Cuando se hace refactor, no se añaden funciones, solo se reestructura el código. Además tampoco se agregan pruebas a no ser que se encuentre un casoq no se había tomado en cuenta antes.
Por ejemplo cuando se empieza a programar, nos ponemos el sombrero de "hacer código nuevo". Programamos hasta que tenemos hecha alguna parte del programa y le hacemos una primera prueba, compilando y viendo que funciona. Dejamos esa parte del programa funcionando. Seguimos con el mismo sombrero puesto y continuamos haciendo el programa. En ese momento vemosun trozo de código que podríamos reaprovechar si estuviera separado en otra función o vemos cualquier otra cosa que si estuviera hecha de otra forma, nos facilitaría la tarea de seguir con el programa. O simplemente vemos algo que no nos convence cómo está hecho. En ese momento cambiamos el sombrero. Nos quitamos el de "hacer código nuevo" y nos ponemos el de "arreglar código".
Ahora sólo estamosarreglando el código. No metemos nada nuevo. Al final dejamos el código funcionando exactamente igual que antes, pero hecho de otra manera que le facilita seguir con el trabajo. Nuevamente nos cambiamos el sombrero por el de "hacer código nuevo" y seguimos programando.
La idea es hacer código nuevo a ratos, arreglar código existente a ratos. Tener claramente qué se está haciendo en cada momento.Si añadimos código nuevo, NO arreglamos el existente. Si estamos arreglando el existente, NO añadimos funcionalidades nuevas. La idea también es arreglar el código con frecuencia, cada vez que veamos que algo no está todo lo bien hecho que debiera. Es decir, hacer refactoring sistemáticamente.
El realizar refactoring puede proporcionarnos muchos beneficios a la hora de desarrollar programas comopor ejemplo:
* Mejora el diseño del software: Ayuda a eliminar la duplicación de código, lo cual es muy importante en el diseño de una aplicación. Cuando cambiamos código, muchas veces nos hace perder la estructura. Con refactoring nos ayuda a diseñar bien y que a la vez sea de fácil entendimiento, estructurando las diferentes partes del código.
* Fácil de entender: se debe tener en...
tracking img