ESCARQJVILTDesarrollo de Software

    ESCUELA - Ruta Profesional en Arquitectura de Software y Diseño de Dominios Complejos con Java

    70 Presencial-Remoto €0.00

    Descripción

    Esta ruta formativa está diseñada para guiar a desarrolladores y arquitectos de software a través de un recorrido progresivo en diseño de software, buenas prácticas de arquitectura y patrones avanzados para sistemas distribuidos. Utilizando Java y Spring Boot como plataforma base, cada módulo profundiza en conceptos clave que habilitan la construcción de aplicaciones escalables, mantenibles y alineadas al dominio de negocio.

    Cada bloque está diseñado para poder cursarse tambien de forma independiente (cursos ARQJAV01-02-03-04), lo que permite a los participantes elegir la formación más adecuada según su nivel de experiencia o necesidades específicas del proyecto en el que trabajan.

    Objetivos

    En un entorno donde la complejidad del software crece exponencialmente, esta Escuela ofrece un enfoque práctico y aplicable para abordar los desafíos reales de diseño y arquitectura de sistemas.
    A través de ejercicios guiados, modelado de dominio, refactorizaciones estructurales y patrones distribuidos modernos, los participantes lograrán:
    • Mejorar la calidad del código y la mantenibilidad del software
    • Reducir la deuda técnica y facilitar la evolución de sistemas legados
    • Aplicar arquitecturas robustas en entornos Java con Spring Boot
    • Integrar patrones de diseño como DDD, CQRS y Event Sourcing

    Esta propuesta formativa está orientada a generar un impacto real en la práctica profesional, y es ideal tanto para quienes desean fortalecer sus fundamentos como para equipos que buscan alinear sus aplicaciones con las mejores prácticas actuales.

    Audiencia

    Curso dirigido a:

    • Desarrolladores backend (junior a senior)
    • Arquitectos de software
    • Líderes técnicos y consultores IT
    • Equipos de desarrollo de aplicaciones críticas o distribuidas

    Prerrequisitos

    • Conocimientos básicos de Java
    • Familiaridad con programación orientada a objetos
    • Experiencia básica con Spring Boot (no excluyente)
    • Conocimientos básicos de herramientas como IDE, Git y Maven

    Temario

    **BLOQUE 1: DISEÑO DE SOFTWARE CON PRINCIPIOS SOLID Y ARQUITECTURA EN CAPAS - 10 horas**

    **Módulo 1: Fundamentos del diseño orientado a objetos (1h)**
    • Clases, objetos, encapsulamiento, abstracción
    • Principios de diseño: cohesión, acoplamiento, legibilidad
    • Anti-patrones comunes (God Object, Service Anémico)

    **Módulo 2: Principios SOLID con Java (3h)**
    • SRP: diseño de clases con responsabilidad única
    • OCP: extensión sin modificación
    • LSP: uso correcto de herencia e interfaces
    • ISP: diseño de interfaces enfocadas
    • DIP: inversión de dependencias con Spring
    • Prácticas: identificación de violaciones y refactor en parejas

    **Módulo 3: Arquitectura en capas con Spring Boot (3h)**
    • Capas: presentación, aplicación, dominio, infraestructura
    • Estructura de paquetes y convenciones de nombres
    • Implementación de una funcionalidad tipo (API REST básica)
    • Prácticas: codificación en parejas de una funcionalidad en 3 capas

    **Módulo 4: Validación arquitectónica con ArchUnit y cierre (3h)**
    • Introducción a ArchUnit
    • Reglas básicas de separación de capas
    • Aplicación completa en Spring Boot con reglas de arquitectura
    • Análisis de problemas comunes en arquitecturas mal estructuradas
    • Evaluación final: revisión crítica de una app base

    **BLOQUE 2: DE LA ARQUITECTURA EN CAPAS A LA ARQUITECTURA HEXAGONAL - 20 horas**

    **Módulo 1: Limitaciones de la arquitectura tradicional en capas (2h)**
    • Análisis de una aplicación base en 3 capas
    • Problemas típicos: acoplamiento, lógica dispersa, difícil testeo
    • Necesidad de separar la lógica del dominio

    **Módulo 2: Introducción a la Arquitectura Hexagonal (4h)**
    • Principios: Ports & Adapters, inversión de dependencias
    • Separación entre lógica de negocio y entradas/salidas
    • Estructura de carpetas: dominio, aplicación, infraestructura, entrada
    • Práctica: identificación de capas reales en la app base

    **Módulo 3: Refactor hacia arquitectura Hexagonal (6h)**
    • Casos de uso como núcleo de la aplicación
    • Adaptadores primarios y secundarios
    • Controladores como adaptadores de entrada
    • Repositorios como adaptadores de salida
    • Práctica guiada: refactor estructural de la aplicación base

    **Módulo 4: Testing y validación de arquitectura (4h)**
    • Testing centrado en el dominio y los casos de uso
    • Dobles de prueba para adaptadores (Mocks, Stubs)
    • ArchUnit: validación de dependencias entre capas
    • Práctica: implementación de pruebas de arquitectura

    **Módulo 5: Revisión, prácticas integradoras y cierre (4h)**
    • Evaluación final: transformación completa de un módulo
    • Presentación de soluciones por parejas
    • Revisión crítica de decisiones arquitectónicas
    • Preparación para evolución futura hacia DDD

    **BLOQUE 3: CURSO PRÁCTICO DOMAIN-DRIVEN DESIGN (DDD) - 20 horas**

    **Módulo 1: Introducción y fundamentos de DDD (2h)**
    • Contexto histórico y filosófico de DDD
    • Complejidad en software de negocio
    • Tácticas vs estrategia: una visión global

    **Módulo 2: Modelado táctico (6h)**
    • Entidades, Value Objects y Agregados
    • Reglas de negocio vs reglas de aplicación
    • Repositorios de dominio vs adaptadores de persistencia
    • Servicios de dominio vs servicios de aplicación
    • Práctica: modelado y codificación de agregados con lógica rica

    **Módulo 3: Modelado estratégico (4h)**
    • Bounded Contexts
    • Context Maps y relaciones entre contextos
    • Ubiquitous Language en equipos mixtos
    • Práctica: identificación y separación de contextos

    **Módulo 4: Organización del código y validación de diseño (4h)**
    • Separación de módulos por contexto
    • Integración con arquitectura Hexagonal
    • Validación con ArchUnit: dependencias y estructura
    • Práctica: reestructuración modular de aplicación existente

    **Módulo 5: Práctica integradora y revisión (4h)**
    • Desarrollo de un contexto funcional completo (por parejas)
    • Modelado colaborativo guiado por casos de negocio
    • Presentación de decisiones de diseño
    • Feedback grupal y cierre

    **BLOQUE 4: CQRS y EVENT SOURCING CON KAFKA Y DEBEZIUM - 20 horas**

    **Módulo 1: Introducción a CQRS y Event Sourcing (2h)**
    • Limitaciones del CRUD tradicional en dominios complejos
    • Principios de CQRS: separación de comandos y queries
    • Fundamentos de Event Sourcing: persistencia basada en eventos

    **Módulo 2: Modelado de comandos y eventos (4h)**
    • Diseño de comandos y handlers en Spring Boot
    • Eventos de dominio vs eventos de infraestructura
    • Persistencia de eventos: Event Store y serialización
    • Práctica: creación de un flujo básico de comandos/eventos

    **Módulo 3: Apache Kafka como bus de eventos (4h)**
    • Introducción a Kafka: tópicos, particiones, offset
    • Producción y consumo de eventos de dominio con Spring Kafka
    • Organización de eventos por tipo y contexto
    • Práctica: orquestación de flujo de eventos entre bounded contexts

    **Módulo 4: Integración con Debezium y proyecciones de lectura (4h)**
    • Qué es Debezium y cómo captura cambios (CDC)
    • Creación de proyecciones (read models) reactivas a cambios
    • Estrategias de sincronización eventual y tolerancia a fallos
    • Práctica: implementación de vista de lectura con cambios detectados por Debezium

    **Módulo 5: Arquitectura completa y validación (4h)**
    • Integración total: CQRS + ES + Kafka + Debezium en arquitectura hexagonal
    • Validaciones de estructura con ArchUnit
    • Pruebas de resiliencia y entrega final por equipos
    • Evaluación final: presentación y análisis de decisiones

    Related courses

    We transform companies through technology, security and specialized training. Your trusted partner in the digital era.

    Services

    Company

    © 2026 Sinensia. All rights reserved.