Así que vamos a aprovechar para explicar el término.
Refactorizar (o Refactoring) es realizar una transformación al software preservando su comportamiento, modificando sólo su estructura interna para mejorarlo. A esta técnica se le conoce informalmente como limpiar el código.
El término Refactoring fue introducido por primera vez 1992 por William F. Opdyke, y es el primer trabajo conocido que examina específicamente esta técnica.
Actualmente podemos encontrar muchas definiciones para dicho término, entre las que cabe destacar:
- Tokuda y Batory (2001): "una transformación parametrizada a un programa preservando su comportamiento, modificando automáticamente el diseño de la aplicación y el código fuente subyacente".
- Martin Fowler (1999): "cambios realizados en el software para hacerlo más fácil de modificar y comprender, por lo que no son una optimización del código, ya que esto en ocasiones lo hace menos comprensible, ni solucionar errores o mejorar algoritmos".
¿Por qué debemos Refactorizar?
- Mejora el diseño.
- Mejora la lectura del código.
- Revela defectos.
- Ayuda a programar más rápido.
¿Cuándo debemos Refactorizar?
- Cuando desarrollamos usando TDD: Red – Gree – Refactor.
- Cuando desarrollamos usando PDD (Pain driven development): Si el código te causa dolor, entonces refactorizalo.
- Cuando se necesita agregar una nueva funcionalidad.
- Cuando corregimos bugs.
- Cuando hacemos la revisión de código.
¿Cuándo no debemos Refactorizar?
- Cuando la deuda técnica es muy alta y la única opción es reescribir toda la aplicación.
- Cuando no se usa un código, en este caso recomiendo borrarlo.
- Cuando el fin del plazo de entrega está cerca, esto puede agregar nuevos bugs que no se llegan a probar por falta de tiempo.
Principios de Refactorización
- KISS (Keep it simple stupid).
- DRY (Dont repeat yourself).
- Escribir código expresivo.
- Reducir el código.
- Separar responsabilidades.
- Usar un nivel de abstracción apropiado.
Tips de Refactorización
- Revisar constantemente el código.
- Hacer un checklist de defectos a refactorizar.
- Hacer refactorizaciones pequeñas, una a la vez.
- Agregar casos de prueba o pruebas unitarias.
- Revisar los resultados.
Herramientas de Refactorización
- Visual studio (Microsoft).
- JustCode (Telerik).
- ReSharper (JetBrains).
- CodeRush (DevExpress).
- Visual Assist X (Whole Tomato).
- Breve introducción a la Refactorización
- La refactorización de software basada en valor
- Refactorizar
Comentarios
Publicar un comentario