2. Legacy Code
• Definición académica:
• Código Viejo
• Con muchos años en
producción
• Mucho mantenimiento y
cambios
• Difícil de mantener
• Pero es EXITOSO
3. Legacy Code
• Si Homero fuera un programa,
¿sería fácil de mantener?
• No es código tan viejo
• ¿Qué hace que sea fácil o
difícil de mantener?
5. ¿Por qué cambia el
software?
• Arreglar un bug
• Añadir un feature
• Mejorar Diseño
• Optimizar
6. ¿Por qué cambia el
software?
• Arreglar un bug
• Añadir un feature
• Mejorar Diseño
• Optimizar
Comportamiento Invariante
7. ¿Por qué cambia el
software?
• Arreglar un bug
• Añadir un feature
• Mejorar Diseño
• Optimizar
Comportamiento Invariante
Comportamiento Invariante
8. Hay que modificar Legacy
Code. ¿Qué Hacer?
• Renunciar
• Hacer el sistema de vuelta
• Pagarle a otro para que lo haga
• Hacerlo nosotros
9. DIY
• Dos formas de trabajar:
• Edit and Pray (Estandar de facto)
• Cover and Modify
10. Cover and Modify
• Legacy Code Change algorithm
1. Identificar Puntos cambios
2. Encontrar puntos de testing
3. Romper las dependencias
4. Escribir Tests
5. Hacer cambios y refactorear