«

»

mar 18 2012

avatar

Imprimir este Entrada

Tutorial: Que son las técnicas de Refactoring en Español (II)

Tutorial Tecnicas de Refactoring en Español

Tutorial Tecnicas de Refactoring en Español

Técnicas de Refactoring (II)

Antes de comenzar a explicar algunas de las técnicas de Refactoring voy a explicarte una cuestión teórica sencilla, corta e interesante.

Metáfora de los dos sombreros:

Cuando se usa el refactoring para desarrollar software, dividimos el tiempo en 2 actividades: agregar funcionalidad y refactorizarla. Cuando agregamos una funcionalidad, nos ponemos el sombrero de “Nuevo Código“, escribimos nuestra función pero  no debemos realizar ningún cambio de código, solo estamos agregando nuevas funcionalidades. Luego podemos armar nuestro escenario de test, llevarlo a cabo y comprobar está funcionando sin problemas. Cuando refactorizamos, tomamos el sombrero de “Refactorización” y  no agregamos ninguna funcionalidad, solo reestructuramos código. Tampoco hacemos ningún test.

Desarrollar software implica cambiar de sombreros constantemente. Primero usamos el sombrero de “Nuevo Código“, escribimos nuestra función, pero nos damos cuenta que se puede mejorar su escritura, su entendimiento si cambiamos o reorganizamos el código. En ese momento cambiamos el sombrero por el de “Refactorización“. Este ciclo se repite indefinidamente, donde lo mas importante es saber que sombrero tenemos puesto.

 


 

Técnicas de Refactoring: Bad Smells

Código Duplicado:

Este es el primer problema que se encuentra en cualquier programa y realizado por cualquier programador (que no sepa de refactoring). Si encontramos el mismo código repetido en mas de un lugar, podemos estar seguros que el programa puede mejorar (a veces la mejora no se debe a rendimiento, sino a un entendimiento de que se quiso realizar en el código) si los unificamos.

 Problema 1: tenemos la misma expresión en dos métodos de la misma clase.

Solución: Se utiliza la técnica Extract Method.


Problema 2: tenemos la misma expresión en clases que heredan del mismo padre.

Solución: Se utiliza la técnica Extract Method en ambas clases y luego Pull Up Field. Si el código es similar pero no igual, se utiliza Extract Method para separar los fragmentos que coinciden de los que no. Luego se puede utilizar Form Template Method. Si los metodos realizan la misma tarea pero con algoritmos diferentes se puede intentar usar Substitute Algorithm eligiendo el mas claro de los dos.


Problema 3: tenemos código repetido en dos clases que no están relacionadas.

Solución: se podría considerar usar Extract Class en una clase y luego usar el nuevo componente en la otra clase.

Esto ha sido todo del Tutorial: Que son las técnicas de Refactoring en Español (II).

Be Sociable, Comparte a SurPatterns!

Artículos Relacionados:

  1. Tutorial: Que son las técnicas de Refactoring en Español (I)

Acerca del autor

avatar

Emmanuel

Ingeniero en Sistemas. Amante de la programación. Tiene conocimientos de: Java, Visual .Net, C#, Adobe Flex, HTML5, JavaScript, ORMs como Hibernate y las principales bases de datos. También trabajó con otras tecnologías como: People Soft y SAP. Actualmente también escribe artículos para su sitio personal SurPatterns. Pueden seguirlo en twitter a traves de @SurPatterns.

Enlace permanente a este artículo: http://surpatterns.com/sitio/tecnicas-refactoring-surpatterns/que-son-las-tecnicas-de-refactoring-en-espanol-ii/

2 comentarios

5 pings

  1. avatar
    Dalila

    Excelente aporte sef1ores me paerce genial que los conocimientos no se queden estancados solo en la mente de pocos y no se compartan con muchos de sus colegas sobre todo para mi que me estoy graduando de Ing. en Geociencias. Muchas gracias desde Venezuela y sigan asi!!!

  2. avatar
    Emmanuel

    Gracias por tus palabras!

  1. avatar
    Técnica de Refactoring: Extract Method » Sur Patterns Community

    [...] « Que son las tecnicas de Refactoring en Español (II) [...]

  2. avatar
    Técnica de Refactoring: Pull Up Field » Sur Patterns Community

    [...] 19/03/2012 Warning! Si quieres saber cómo, cuando y donde aplicar esta técnica por favor visita:  que son las tecnicas de refactoring en espanol II [...]

  3. avatar
    Técnica de Refactoring: Extract Class » Sur Patterns Community

    [...] 19/03/2012 Warning! Si quieres saber cómo, cuando y donde aplicar esta técnica por favor visita:  que son las tecnicas de refactoring en espanol II [...]

  4. avatar
    Técnica de Refactoring en Español: Extract Class » Sur Patterns

    [...] 19/03/2012 Warning! Si quieres saber cómo, cuando y donde aplicar esta técnica por favor visita:  que son las tecnicas de refactoring en espanol II [...]

  5. avatar
    Tutorial: Que son las técnicas de Refactoring en Español (I) » Sur Patterns | Sur Patterns

    [...] Tutorial: Que son las técnicas de Refactoring en Español (II) [...]

Deja un comentario

Tu dirección de correo electrónico no será publicada.

Puedes utilizar las siguientes etiquetas y atributos HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="" highlight="">