REFACTORING

 

 

Objetivo:  Los programadores restructuran el sistema sin cambiar su comportamiento para sacar duplicados, mejorar la comunicacion, simplificar o agregar flexibilidad

 

  • Cuando implementan un requerimiento, los programadores se preguntan si hay una forma de cambiar el programa para agregar el requerimiento de forma simple.

  • Luego que lo agregaron se preguntan si ahora pueden ver una forma mas simple para el programa mientras todavía corren las pruebas. Esto es refactoring.

  • Algunas veces se hace mas trabajo que el necesario para tener un requerimiento andando, pero se asegura que el próximo requerimientos pueda ser agregado con un esfuerzo razonable y el siguiente y el siguiente.

Relación con las otras prácticas:
  • Se usa responsabilidad colectiva, por lo que se hacen los cambios cuando se necesitan

  • Se tienen estándares de código, de forma que luego de un refactoring no haya que reformatear

  • Se programa en pares, de forma de tener confianza de que el refactoring no rompa algo

  • El diseño es simple, entonces el refactoring es simple

  • Se tienen los test, por lo que es menos probable romper algo sin darse cuenta

  • Se tiene integración continua, de forma que si un refactoring rompe algo, se sabe en pocas horas

  • Se tiene mas coraje y se descansa en que es menos probable tener errores