Desarrollo con arquitectura hexagonal y Java

Competencias digitales avanzadas

Cursos y talleres

  • Límite de inscripción: 30/11/2025 12:00
  • Fechas: 01/12/2025 16:00 - 04/12/2025 21:00
  • Duración: 20 horas
  • Modalidad: Online

Datos de interés

  • Precio: Gratuito
  • Sesiones:
    • Lunes 1 a Jueves 4 de diciembre, 16:00 - 21:00

Cómo aplicar este estilo de diseño en aplicaciones Java, resaltando sus ventajas para mejorar la mantenibilidad, flexibilidad y escalabilidad del software.

Objetivos,.

  • Comprender los principios de mantenimiento y flexibilidad en el desarrollo de software.
  • Identificar las limitaciones de las arquitecturas tradicionales en capas y explorar alternativas actuales.
  • Diseñar y aplicar arquitecturas hexagonales y limpias que separen responsabilidades y potencien la escalabilidad.
  • Implementar adaptadores web y de persistencia asegurando una correcta organización de código y casos de uso.
  • Aprender técnicas de testing y buenas prácticas para mantener la coherencia arquitectónica.

Dirigido a.-

  • Arquitectos/as de software que deseen aplicar patrones avanzados para proyectos escalables.
  • Equipos técnicos que busquen mejorar mantenibilidad, pruebas y calidad de sus aplicaciones.
  • Profesionales IT que trabajen en entornos de desarrollo ágil y quieran integrar principios de Clean Architecture.

Docente.-

Alberto Basalo

Profesional con más de 30 años de experiencia en el desarrollo de software, especializado en JavaScript y TypeScript, con amplia trayectoria en arquitectura de software, código limpio, testing (Jest, Cypress) y consultoría tecnológica. Ha trabajado en multinacionales como Inditex y TOUS, además de liderar proyectos y formación en empresas de desarrollo y consultoría. Actualmente se dedica a la formación y asesoramiento en productividad y calidad de código con IA, promoviendo metodologías de AI Driven Development para potenciar el desarrollo profesional con herramientas de inteligencia artificial.

Metodología.-

  • Sesiones teóricas apoyadas en casos prácticos y ejemplos de código en Java.
  • Ejercicios de análisis de arquitecturas en capas vs. hexagonal.

Estructura y contenidos.-

  1. Maintainability. Explora el concepto de mantenibilidad del software y cómo contribuye a la funcionalidad, el bienestar de los desarrolladores y la toma de decisiones.
  2. What’s Wrong with Layers?. Analiza los problemas de las arquitecturas en capas, como el diseño impulsado por la base de datos, los atajos que complican las pruebas, y cómo ocultan los casos de uso.
  3. Inverting Dependencies. Introduce los principios de responsabilidad única e inversión de dependencias, y explica cómo arquitecturas como Clean y Hexagonal ayudan a mantener el software flexible.
  4. Organizing Code. Discute diferentes maneras de organizar el código, ya sea por capas o por características, y cómo hacer que la arquitectura sea expresiva y coherente.
  5. Implementing a Use Case. Presenta la implementación de casos de uso dentro de la arquitectura limpia, asegurando que la lógica de negocio sea central y mantenible.
  6. Implementing a Web Adapter. Explica cómo implementar adaptadores web que conectan la interfaz de usuario con la lógica de negocio, asegurando una separación clara de responsabilidades.
  7. Implementing a Persistence Adapter. Detalla cómo implementar adaptadores de persistencia que manejan la interacción con bases de datos sin mezclar lógica de negocio.
  8. Testing Architecture Elements. Muestra cómo probar de manera efectiva los diferentes elementos arquitectónicos, manteniendo la estructura y claridad del código.
  9. Mapping Between Boundaries. Describe cómo mapear los datos entre los diferentes límites dentro de la arquitectura, como el paso de datos entre la capa de dominio y la de persistencia.
  10. Assembling the Application. Explica cómo ensamblar los diferentes componentes de la aplicación manteniendo la coherencia y alineación con los principios de la arquitectura limpia.
  11. Taking Shortcuts Consciously. Discute cómo tomar atajos de manera consciente en situaciones en las que las restricciones de tiempo lo exigen, sin comprometer la arquitectura a largo plazo.
  12. Enforcing Architecture Boundaries. Presenta técnicas para garantizar que se respeten los límites arquitectónicos, evitando dependencias incorrectas entre capas o módulos.
  13. Managing Multiple Bounded Contexts. Explica cómo gestionar múltiples contextos delimitados, un concepto clave en el diseño de sistemas complejos y de gran escala.
  14. A Component-Based Approach to Software Architecture. Aborda un enfoque basado en componentes para la arquitectura de software, dividiendo el sistema en partes independientes y reutilizables.
  15. Deciding on an Architecture Style. Cierra con una discusión sobre cómo decidir el estilo arquitectónico adecuado para cada proyecto, evaluando opciones como arquitecturas monolíticas o basadas en microservicios.