Skills que aprenderás
Convocatorias
No hay convocatorias abiertas ahora mismo, pero no te pierdas la oportunidad: guarda este curso y te avisamos en cuanto se abra una convocatoria.
Recursos
No hay recursos disponibles todavía para esta convocatoria
Este curso está dirigido a desarrolladoras y desarrolladores de software con conocimientos previos de los principios SOLID que buscan consolidar y profundizar su aplicación en contextos reales de diseño orientado a objetos. A lo largo de las ocho horas de trabajo, la persona participante abordará cada principio SOLID desde una perspectiva práctica y crítica: refactorizará clases con responsabilidades mezcladas, extenderá diseños cerrados a modificación directa, evaluará jerarquías de herencia bajo criterios de sustitución, segregará interfaces sobredimensionadas y desacoplará módulos de alto nivel mediante inyección de dependencias. El curso cierra con un ejercicio integrador en el que todos los principios se aplican de forma coherente sobre un módulo de complejidad media, y con una reflexión argumentada sobre cuándo la aplicación estricta de SOLID puede introducir complejidad accidental innecesaria. Al finalizar, la persona será capaz de diseñar y revisar código orientado a objetos aplicando los cinco principios con criterio, justificando sus decisiones de diseño ante equipos técnicos.
Bloque 1 — Responsabilidad única y cierre a la modificación. El bloque arranca con un análisis detallado del principio de responsabilidad única: cómo identificar con precisión las razones de cambio de un módulo, qué señales en el código revelan responsabilidades mezcladas y cómo trazar la nueva estructura de clases tras la refactorización. A continuación se aborda el principio de abierto/cerrado, explorando las dos estrategias principales de extensión —herencia y composición— y aplicando cada una sobre casos de uso reales donde el código existente debe permanecer intacto. El bloque incluye ejercicios de comparación entre diseños que respetan y que violan estos dos primeros principios, de modo que la persona participante construya un criterio sólido antes de avanzar.
Bloque 2 — Sustitución de Liskov y segregación de interfaces. Este bloque examina el principio de sustitución de Liskov desde el comportamiento observable de las subclases: se estudian jerarquías de herencia problemáticas, se diseñan tests de sustitución y se argumenta cuál jerarquía cumple el contrato y cuál lo rompe, y por qué. Seguidamente se trabaja el principio de segregación de interfaces: se parte de interfaces sobredimensionadas reales, se identifican los distintos perfiles de cliente, se aplican los criterios de separación y se mide el impacto en el acoplamiento del sistema resultante. Ambos principios se estudian también de forma comparada, evaluando soluciones alternativas a un mismo problema para razonar sobre mantenibilidad y cohesión.
Bloque 3 — Inversión de dependencias, integración y juicio crítico. El bloque final profundiza en el principio de inversión de dependencias: qué significa que un módulo de alto nivel dependa de abstracciones y no de concreciones, cómo se implementa la inyección de dependencias en presencia de servicios externos y qué patrones facilitan el desacoplamiento sin añadir burocracia innecesaria. Sobre esta base, la persona participante afronta el ejercicio integrador: diseñar desde cero un módulo de complejidad media aplicando los cinco principios de forma simultánea y coherente, sometiendo el resultado a revisión de pares guiada. El bloque cierra con una sesión de reflexión crítica en la que se argumenta, con base técnica, cuándo la aplicación de SOLID puede ser contraproducente y cómo equilibrar rigor de diseño con pragmatismo en proyectos reales.