Introducción
  • Introducción
  • ¿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
  • 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
  • Técnicas de Composición de Métodos
  • Extraer Método
  • Unificar Método
Caso de Estudio
  • Caso de Estudio
  • Instalar Visual Studio
  • 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
  • Ciclo 1: Extraer Método calcularImporteRenta()
Técnicas que agregan variables temporales
  • 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
  • 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
  • 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
  • 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
  • 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
Resúmen del Curso
  • Resúmen del Curso