¿Qué es la Refactorización?

La refactorización (del inglés refactoring) es una técnica de ingeniería de software para reestructurar un código fuente, alterando su estructura interna sin cambiar su comportamiento externo, y mejorar su consistencia interna y su claridad. A este se le se conoce informalmente como limpiar el código, y sirve hasta para eliminar código muerto, aparte de facilitar mucho posteriores procesos de pruebas y depuración.

La refactorización es parte de la fase de mantenimiento, pero no arregla errores ni añade nuevas funcionalidades. Su objetivo es mejorar la legibilidad y facilidad de comprensión del código o cambiar su estructura y diseño, para facilitar mantenimientos futuros. Añadir una nueva funcionalidad a un programa puede ser difícil dada su estructura actual, por lo que los programadores suelen refactorizarlo primero para facilitar el añadir luego la nueva funcionalidad. Al terminar el refactoring, cualquier cambio en el comportamiento externo se considera un bug y debe ser arreglado de manera independiente a la depuración de la nueva funcionalidad.

Tampoco debe confundirse el refactoring con la optimización de software, aunque es posible que como parte de una refactorización se cambie un algoritmo por otro más eficiente o que utilice menos recursos, por ejemplo, siempre que no se altere el comportamiento del programa desde el punto de vista del usuario.

Actividades comunes de refactoring incluyen renombrar variables y métodos, mover métodos o clases enteras y dividir métodos grandes (o funciones) en unos más pequeños, reestructurar código, o cambiar una estructura de datos por otra más fácil de manejar o que desperdicie menos espacio de memoria. Un claro ejemplo de refactoring es el que se muestra en este vídeo:

NO Uses "IF" anidados. HAZ esto!

El resultado final del vídeo anterior es prueba de que la refactorización redunda en beneficios tangibles:
Refactorición de if anidados

Cabe señalar que debe considerarse bien la decisión de refactorizar un programa, puesto que es una actividad que consume tiempo y recursos, puede introducir errores y probablemente la ganancia en eficiencia o en el rediseño no compense mucho la inversión, pudiéndose haber dedicado esos esfuerzos y recursos a otras prioridades.

Si se decide realizar refactorización, ésta debe ser realizada sobre una copia del proyecto, en un ambiente separado para no afectar la versión estable de código y poder comprobar con mayor facilidad que no se introducen errores al modificarlo.

Por último, para que termines de comprender qué es el refactoring, te dejo el vídeo de BettaTech:

¿Sabes lo que significa Refactorizar?


Espero que estos recursos te ayuden mucho en tu formación y crecimiento como programador como me ha ayudado a mí. Si sabes de otros vídeotutoriales que valga la pena incluir en este blog, házmelo saber. No olvides dejar tu comentario y compartir el post con quienes consideres que pueda serle útil. Si encuentras algún link roto o vídeo que no aparece, por favor avísame para corregirlo.

Comentarios