- Introduction
- ¿Para qué es este curso?
- ¿Para quién está dirigido este curso?
- ¿Qué es el Refactoring?
- ¿Qué NO es el Refactoring?
- ¿Cuándo debemos hacer Refactoring?
- ¿Cuándo NO Refactorizar el código?
- Cuando algo en el código "No huele bien"
- El Ciclo de Refactoring
- Las Técnicas de Refactoring
- Técnicas para Organizar Datos
- Reemplazar Número Mágico por Constante
- Encapsular Campo
- Reemplazar Arreglo por Objeto
- Técnicas de Composición de Métodos
- Extraer Método
- Unificar Método
- Caso de Estudio
- Instalar Eclipse
- Nuevos Requerimientos 1
- Descargar Código de la Aplicación a Refactorizar
- Ciclo 1: Identificar Code Smell y Técnica de Refactoring a usar
- Cliclo 1: 1er Caso de Prueba Automatizadado
- Ciclo 1: 2do Caso de Prueba Automatizado
- Ciclo 1: 3er Caso de Prueba Automatizado
- Ciclo 1: 4to Caso de Prueba Automatizado
- Ciclo 1: 5to Caso de Prueba Automatizado
- Ciclo 1: 6to Caso de Prueba Automatizado
- Ciclo 1: 7to Caso de Prueba Automatizada
- Ciclo 1: 8vo Caso de Prueba Unitaria
- Nuevos Requerimientos 2 y 3
- Cliclo 1: Extraer Método calcularImporteRenta()
- Técnicas que agregan variables temporales
- Dividir una variable temporal
- Agregar una variable explicativa
- No cambiar el valor de los parámetros
- Técnicas que mueven funcionalidad
- Mover Método
- Ciclo 2: Mover Método calcularImporteRenta()
- Extraer Clase
- Clase Innecesaria
- Mover Campo
- Ocultar Delegado
- Eliminar Intermediario
- Ciclo 3: Extraer Método calcularPuntosClienteFrecuente()
- Ciclo 4: Mover Método calcularPuntosClienteFrecuente()
- Aplicar Requerimiento 1
- Técnicas que simplifican las condiciones
- Descomponer una condición
- Consolidar condiciones
- Consolidar código duplicado en condiciones
- Remplazar condiciones con Polimorfismo
- Remplazar código por tipo con Subclases
- Técnicas que simplifican el llamado de Métodos
- Preservar todo el Objeto
- Remplazar grupo de parámetros con Objeto
- Renombrar Método
- Quitar Parámetro
- Poner Parámetro
- Parametrizar Método
- Remplazar Parámetro con Métodos explícitos
- Separar Consulta del Modificador
- Ciclo 5: Mover Método calcularImporte() ahora a la clase Película
- Ciclo 6: Mover Método calcularPuntosClienteFrecuente a clase Película
- Técnicas relativas a las Jerarquías
- Generalizar Campo
- Generalizar Método
- Especializar Campo
- Especializar Método
- Extraer Súper-Clase
- Extraer Sub-Clase
- Colapsar Jerarquía
- Remplazar Tipo de Objeto con Patrón de Diseño
- Ciclo 7: Crear clases del Patrón de Diseño Estado
- Ciclo 8: Mover método calcularImporte() a la clase PrecioPelicula
- Ciclo 9: Sustituir condiciones por Polimorfismo en calcularImporte()
- Ciclo 10: Mover método calcularPuntosClienteFrecuente a clase PrecioPelicula
- Ciclo 11: Sustituir condiciones por Polimorfismo en método calcularPuntosCliente
- Código Refactorizado final
- Resúmen del Curso