©2025 Escuela Tecnologías de la Información S.L. Todos los derechos reservados.
Curso de Refactoring 100% práctico
Domina el cambio del código de las aplicaciones mediante el conjunto de técnicas de las metodologías ágiles llamada "Refactoring".
Inscripciones abiertas
Inicio del curso
Dentro de las muchas técnicas que han aportado las metodologías ágiles una de las más útiles y recomendables es el "Refactoring". Consiste en cambiar el código de las aplicaciones en micropasos, sin alterar su funcionamiento, con el objetivo de mejorar el diseño del software.
Es una práctica que hace que el conjunto de métodos ágiles encaje perfectamente y tenga como resultado una mejora siempre deseable de la calidad del software. Pero para conseguirlo es importante mantener un enfoque adecuado, dirigido por otras prácticas como las pruebas y el TDD, así como saber en qué situaciones podemos mejorar el diseño del software para hacerlo más entendible, mantenible y robusto.
Es una práctica que hace que el conjunto de métodos ágiles encaje perfectamente y tenga como resultado una mejora siempre deseable de la calidad del software. Pero para conseguirlo es importante mantener un enfoque adecuado, dirigido por otras prácticas como las pruebas y el TDD, así como saber en qué situaciones podemos mejorar el diseño del software para hacerlo más entendible, mantenible y robusto.
Qué aprenderé en el Curso de Refactoring 100% práctico
Objetivos del curso
Por qué debes aprender refactoring
Qué tengo que saber
Conocimientos previos necesarios:
- Familiaridad mínima con al menos un lenguaje de programación orientado a objetos (C#, Java, Python, JavaScript con clases, etc.).
- Capacidad para leer y escribir código en dicho lenguaje.
- Entender estructuras básicas como clases, métodos, condicionales, bucles y colecciones.
- Haber trabajado con funciones o métodos en algún proyecto, aunque sea pequeño.
- Opcional pero recomendable: nociones básicas sobre testing automatizado.
Tecnologías utilizadas en el curso:
-
Los ejemplos principales estarán escritos en C#, aunque se explicarán de forma que sean totalmente transferibles a otros lenguajes OOP y entendibles. No se usarán casi nunca detalles propios del lenguaje.
-
Herramientas o entornos comunes como:
- IDE con soporte para refactoring: se usará Rider pero se entenderá perfectamente si solo se ha usado Visual Studio, Visual Studio Code, etc.
- Algún framework o librería de testing: xUnit, NUnit, MSTest o equivalente en otro lenguaje.
- Git para versionar y entender cambios si se desea practicar de forma más completa.
Clases y contenidos
- ¿Qué es refactoring?
- Historia y evolución del refactoring.
- Por qué importa: mantenibilidad, rapidez, calidad interna y deuda técnica.
- Código legacy vs código mantenible vs código bonito.
- Refactoring vs. reescritura.
- El rol del testing en el refactoring.
- ¿Qué son los code smells?
- Diferencia entre code smell y código incorrecto.
- Papel de los code smells en el refactoring.
- Clasificación y catálogo de code smells.
- Refactorings estructurales (Basado en Fowler, Capítulos 1–3)
- Renombrados y casos problemáticos según el IDE que usemos.
- Extracciones e inlinings.
- Movimientos y encapsulaciones.
- Refactorings de orientación a objetos (Fowler, Capítulos 4–6)
- Reemplazar condicional por polimorfismo.
- Introducir objeto de parámetro.
- Dividir responsabilidad de clase.
- Refactorings arquitectónicos (Fowler, Capítulos 7–9)
- Cambios de arquitectura interna.
- Separar capas, reorganizar módulos.
- Refactoring en sistemas distribuidos.
- Mención a los microservicios.
- ¿Qué es código legacy realmente? ¿Qué lo diferencia de la deuda técnica?
- El miedo a cambiar código viejo. “Trauma-driven development”.
- El refactoring como hábito y herramienta de entendimiento de código.
- Cómo empezar a refactorizar sin romper nada: characterization tests.
- Varias técnicas de test de caracterización.
Introducir seams para permitir testeo: método, clase, preprocesador… Técnicas para romper dependencias. Identificación de casos donde el código legacy impide refactorizar.
- Trabajar de forma incremental.
- Refactorizar sin full coverage: safe spots, inyección controlada, etc..
- Diagnóstico rápido de riesgos.
- Recapitulación sobre el papel del TDD.
- El papel del refactoring en la IA generativa y el vibe coding.
- Próximos pasos para profundizar en refactoring.
¿Conoces nuestra tarifa plana?
Toda la formación de EscuelaIT, con más de 200 cursos completos para aprender las más variadas tecnologías de programación, diseño y marketing online. Todo! con tu suscripción.