La refactorización de código es una de las ¿Técnicas? ¿Herramientas? para tratar de hacer el código más entendible y ahorrar tiempos, costos en el mantenimiento.
Hay dos puntos de vista, por una parte hay muchos programadores que hacen algo en 2 lineas y superMegaHyperEficiente pero que nadie entiende. Y hay otros que lo hacen en 10 lineas pero que entiende cualquier persona.
¿Qué es mejor?, desde mi punto de vista depende del caso. Si es un proyecto cada byte de más es un desperdicio optas por ser óptimo, en otro caso es mejor comentar y programar con modelos y técnicas propuestas que a primera vista son muy tontas, pero a largo plazo suelen funcionar muy bien.
El libro de Martin Fowler, Refactoring es la referencia clásica y básica para empezar. Modelos de datos, encapsulamiento de objetos, etc. Es el libro que lleve hace 1 año y creo que a pesar de todo, funciona bien.
Lo mejor para mi es tener una referencia de “Best Practices” o buenas practicas que me hacen mejor programador. Ya que uno de los grandes problema es que todo el mundo sabe programar, pero todos a su manera. Tener una guia básica te permite tener un estándar y eso para mi es una gran ventaja.
Si quieren darle una “ojeada” a algunas propuestas para refactorizar código: CATALOGO BÁSICO DE REFACTORINGS.