El objetivo del refactoring es evitar la deuda técnica que se acumula en el código fuente y generar un código mas limpio y mas fácil de entender.
De igual forma la refactorización es un proceso sistemático de mejorar el código sin crear una nueva funcionalidad, permitiendo transformar las funcionalidades actuales en un código limpio y un diseño simple.
¿Que sería código limpio (clean code) y deuda técnica (technical debt)?
Para que un código se considere limpio se debe tener en cuenta las siguientes características:
Si nuestro código no se considera limpio (Dirty Code) podemos decir que tenemos una deuda técnica con respecto a nuestro desarrollo, por otro lado, otra deuda técnica considerable es la baja cobertura del código fuente por parte de pruebas unitarias e integrales.
Consideremos las siguientes causas de deuda técnica basados en porcentajes no óptimos:
– Imprecisión del negocio.
– Desconocimientos de los indicadores técnicos.
– De no combatir la estricta coherencia de los componentes.
– Falta de pruebas.
– Falta de documentación.
– Falta de interacción entre los miembros del equipo
– Desarrollo simultáneo a largo plazo en varias ramas.
– Refactorización discontinuo.
– Falta de seguimiento de cumplimiento.
– Desconocimiento del Stack Tecnológico.
– Cuando agregamos una nueva característica.
– Cuando resolvemos un bug.
– Durante el code review.
– Cuando hacemos pruebas unitarias.
– Cuando hacemos algo por segunda vez.
– Cuando hacemos un código similar ya refactorizado.
Pensar en lo siguiente:
Si paso a hacer la refactorización ahora, ¿cuánto tiempo tomaría hacerlo más tarde?
Las refactorizaciones pequeñas son como hacer una inversión de bajo costo que siempre paga dividendos. Aprovecha eso cada vez.