Reconocer el problema de diseño que da origen a cada patrón antes de nombrar el patrón.
Implementar estrategia, observador, decorador y fábrica en Python, Java y TypeScript comparando el resultado.
Sustituir patrones estructurales por funciones de primer orden cuando el lenguaje ya los ofrece.
Detectar sobreingeniería en una jerarquía de clases y proponer la simplificación equivalente.
Aplicar inyección de dependencias para aislar efectos externos y facilitar las pruebas.
Refactorizar código existente hacia un patrón en pasos pequeños y verificables con tests.
Contenido del curso
7 módulos · 36 clases en vídeo · práctica guiada en cada módulo
Módulo 1 · Antes del catálogo5 clases
Qué problema resuelve realmente un patrón
Acoplamiento, cohesión y coste del cambio
Los principios SOLID revisados con escepticismo
Los tres lenguajes del curso y sus diferencias de partida
Cómo se medirá si un patrón mejora el código
Módulo 2 · Patrones de creación5 clases
Fábrica simple y método fábrica sobre un caso concreto
Fábrica abstracta: cuándo compensa y cuándo no
Constructor por pasos para objetos con muchos parámetros
Singleton: por qué suele ser un problema disfrazado
Prototipo y copia profunda frente a copia superficial
Módulo 3 · Patrones estructurales5 clases
Adaptador para integrar una biblioteca ajena
Decorador en Java y con funciones en Python
Fachada para reducir la superficie de un subsistema
Compuesto para estructuras en árbol
Proxy: caché, control de acceso y carga diferida
Módulo 4 · Patrones de comportamiento6 clases
Estrategia frente a cadenas de condicionales
Observador y su relación con los eventos del navegador
Plantilla de método y sus alternativas por composición
Estado: modelar una máquina de estados sin condicionales
Comando, deshacer y rehacer
Iterador y generadores del lenguaje
Módulo 5 · Patrones que el lenguaje ya te da5 clases
Funciones de primer orden en lugar de estrategia
Decoradores nativos de Python frente al patrón clásico
Tipos estructurales de TypeScript y adaptadores innecesarios
Registros e inmutabilidad en Java moderno
Señales de sobreingeniería en una revisión de código
Módulo 6 · Dependencias y pruebas5 clases
Inyección de dependencias sin marco de trabajo
Dobles de prueba: falsos, espías y simulaciones
Aislar entrada y salida en los bordes del sistema
Diseñar para poder probar sin reescribirlo todo
Contratos entre módulos y pruebas de integración
Módulo 7 · Proyecto de cierre5 clases
Código de partida: un módulo difícil de cambiar
Diagnóstico y plan de refactorización por pasos
Aplicar dos patrones y descartar un tercero
Comparar la versión Python y la versión TypeScript
Documentar las decisiones para el resto del equipo
Requisitos
Experiencia real programando con orientación a objetos en algún lenguaje.
Lectura cómoda de código en Python y en al menos uno entre Java y TypeScript.
Haber escrito pruebas automatizadas alguna vez, aunque sea de forma básica.
Descripción
Los patrones de diseño se enseñan a menudo como un catálogo que hay que memorizar, y el efecto es contrario al buscado: código lleno de fábricas abstractas y capas de indirección que nadie sabe justificar. El problema no son los patrones, sino aplicarlos sin haber identificado la tensión de diseño concreta que pretenden aliviar en ese punto del sistema.
Aquí cada patrón entra por el problema: primero un fragmento de código que duele al cambiarlo, después la refactorización que lo resuelve y por último el nombre. La misma solución se muestra en Python, Java y TypeScript, lo que hace evidente qué parte del patrón es diseño y qué parte es simple compensación de lo que falta en un lenguaje concreto.
Al final se dispone de criterio para decidir cuándo un patrón paga su coste y cuándo una función basta, y de práctica en refactorización guiada por pruebas. Es la preparación adecuada para asumir revisiones de código, definir convenciones de un equipo y afrontar cursos posteriores de arquitectura de aplicaciones y sistemas de diseño compartidos.
¿Para quién es este curso?
Desarrolladores con varios años de oficio que revisan el código de otras personas.
Perfiles técnicos que trabajan en más de un lenguaje y quieren un criterio común de diseño.
Quienes heredan una base de código con jerarquías profundas y necesitan simplificarla sin romperla.
Bajo demanda
Curso diseñado con la ficha cerrada. Se produce al confirmarse un grupo o un contrato.
Este sitio web utiliza cookies propias y de terceros para recopilar información con finalidad técnica. No se recaban ni ceden datos de carácter personal sin tu consentimiento. Más información en la política de cookies.