Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Y si ustedes están aquí hoy, es muy probable que hayan trabajado o estén trabajando
con algún lenguaje de programación. Y si ese es el caso, sus actividades podrían
resumirse en:
En ocasiones como desarrolladores vemos que la calidad o la estructura del código
existente no es muy buena, ya sea porque el código es complejo, no es fácil de entender
o incluso cuando agregamos algún cambio desencadenamos errores sin entender por
qué.
Todos estos factores son señal de que nuestro código debe ser refactorizado.
Como dice Martin Fowler, “Refactorizar significa hacer un cambio en la estructura interna
del software para que sea más fácil de entender y más barato modificarlo sin cambiar su
comportamiento observable”
Pero, Por qué querríamos nosotros cambiar la estructura interna del software?
A todo esto le llamamos deuda técnica y aparece por diversas razones, entre ellas:
Por eso sabemos que la deuda técnica siempre existirá y no podemos pensar que la
refactorización es una tarea especial en nuestros proyectos, sino más bien, una tarea de
la programación diaria.
Lo que debemos saber es en qué momento SÍ y en qué momento NO debemos hacer un
refactor.
Cuándo NO debemos hacer refactor de nuestro código?
Ya que, como dice el dicho: “no trates de arreglar lo que no está roto” y lo mismo ocurre
con el código.
Hay una gran cantidad de Code Smells, pero gracias a los esfuerzos de Mika Mäntylä y
Casper Lassenius están agrupados en algo que ellos denominaron A Taxonomy for "Bad
Code Smells"
http://mikamantyla.eu/BadCodeSmellsTaxonomy.html
1. Los Bloaters que nos habla de los métodos y clases muy grandes con las que son
difíciles de trabajar.
2. Object - Oriented Abusers: Se refieren al código que aplica incorrectamente los
principios de la programación orientada a objetos o no los usa.
3. Change Preventers: Que violan la regla sugerida por Fowler que dice que las clases y
los posibles cambios deberían tener una relación de uno a uno.
4. Couplers: Representan un acoplamiento entre clases o módulos y se sugiere que sean lo
más independientes posible.
5. Dispensables: Un dispensable es un código que no es necesario y debe
eliminarse como los malos comentarios y el código duplicado.
Después de identificar problemas, llamados Code Smells y aplicar técnicas de
refactorización dependiendo de cada uno de ellos, definamos 5 principios para la
refactorización:
Si les interesa saber mucho más acerca de este tema, los invito a leer el libro de Martin
Fowler “Refactoring. Improving the Design of Existing Code”.
https://martinfowler.com/books/refactoring.html
Muchas gracias !