Clase 6
Objetivos
- Aprender herramientas que ayuden a modificar una pieza de software existente, en particular
Refactorización
- qué es: introducir mejoras en el código para que sea más entendible y fácil de modificar.
- Separar los momentos en los que agrego funcionalidad vs. mejoro el código
- Refactorizar vs. optimizar
- Refactorización y testeo automatizado
- Cuándo refactorizar: "bad smells"
Expansión
- El momento en que agrego funcionalidad. Qué agrego primero.
- Método MoSCoW
- Buenas prácticas: KISS (Keep it simple), DRY (Don't repeat yourself) - Once and only once, YAGNI (You aren't gonna need it), etc.
Qué tengo que llevar impreso
- El enunciado con los cambios pedidos al ejercicio del Manejo de Proyectos
- El ejercicio de Manejo de proyectos resuelto anteriormente
Material complementario
- Sitio de Refactoring de Martin Fowler
- Design Patterns (Elements of Reusable Object-Oriented Software)
- Extreme Programming Explained, Kent Beck & Erich Gamma
- Extreme Programming Explored, William C. Wake, 2000
- Página oficial del manifiesto ágil
Código para descargarse
Buscá el proyecto manejoProyectos.domain (no mavenizado) en http://svn2.xp-dev.com/svn/utn-tadp-projects
- Para bajarte la versión previa al refactor tenés que hacer un update de "Versión inicial - previo al refactor".
- El resultado final de la clase de refactor está en "versión 2 - refactor de tareas (costo), nombres de complejidad, primera versión del costo de la complejidad (previo refactor)"
Acordate que para bajarte software de la cátedra tenemos un instructivo (ver "Instrucciones generales para descargar proyectos")
Links
page revision: 22, last edited: 20 Apr 2010 11:53