Especialidad formativa
Análisis, arquitectura y despliegue de software en java
Qué aprenderás
Diseñar, análizar y desplegar aplicaciones Java mediante patrones de diseño, arquitecturas y pipelines CI/CD, integrando criterios de sostenibilidad y eficiencia energética.
Contenido del curso
01
Patrones de Diseño y Principios Arquitectónicos
- OBJETIVO
- Aplicar patrones de diseño y principios SOLID para mejorar mantenibilidad, realizar análisis cuantitativo de calidad de código e identificar y corregir code smells con impacto ambiental.
- CONOCIMIENTOS/ CAPACIDADES COGNITIVAS Y PRÁCTICAS
- Comprensión de los fundamentos de diseño de software
- Conocimiento de principios SOLID y su aplicación en Java
- Conocimiento acerca de criterios para evaluar calidad de código (acoplamiento, cohesión, complejidad)
- Implementaciones haciendo uso de buenas prácticas de diseño orientado a objetos
- Identificación de patrones de diseño esenciales
- Uso de patrones creacionales: Factory, Builder, Singleton...
- Uso de patrones estructurales: Adapter, Decorator, Proxy
- Uso de comportamiento: Strategy, Observer, Chain of Responsibility
- Conocimientos generales sobre patrones de software
- Utilización de herramientas para el análisis de código
- Introducción a herramientas para métricas de código (complexity, coverage, smells)
- Realización de refactoring guiado por patrones
- Conocimientos de sostenibilidad: impacto ambiental del código ineficiente
- HABILIDADES DE GESTIÓN, PERSONALES Y SOCIALES
- Concienciación acerca del impacto ambiental del código ineficiente
- Valoración de la importancia de evaluar la calidad del código producido
02
Arquitecturas y Escalabilidad
- OBJETIVO
- Diseñar arquitecturas escalables y resilientes, otimizar consumo de recursos en sistemas distribuidos e implementar técnicas de profiling para mejorar eficiencia.
- CONOCIMIENTOS/ CAPACIDADES COGNITIVAS Y PRÁCTICAS
- Comparación de las características de distintas arquitecturas
- Realización de Comparativas: monolitos vs microservicios vs serverless
- Diseño de APIs RESTful y gestión de versionado
- Conocimientos sobre event-driven architecture con Java Message Service (JMS)
- Identificación e implementación de arquitecturas limpias y sostenibles
- Implementación de Hexagonal/Ports & Adapters
- Implementaciones CQRS y Event Sourcing
- Eficiencia energética en diseño de arquitecturas distribuidas
- Valoración de las alternativas para balancear calidad y rendimiento
- Conocimiento de técnicas de profiling en Java (CPU, memoria, I/O)
- Optimización de recursos computacionales
- Diseño para escalabilidad horizontal/vertical
- HABILIDADES DE GESTIÓN, PERSONALES Y SOCIALES
- Evaluación de la eficiencia energética en arquitecturas distribuidas
- Apreciación de la importancia de optimizar los recursos computacionales
03
CI/CD y Automatización en Java
- OBJETIVO
- Construir pipelines CI/CD para proyectos Java complejos, automatizar procesos de testing y despliegue y, reducir huella ecológica en operaciones DevOps.
- CONOCIMIENTOS/ CAPACIDADES COGNITIVAS Y PRÁCTICAS
- Comprensión de la automatización de los procesos de integración continua
- Uso de Pipelines con Jenkins/GitHub Actions o similar para proyectos Java
- Automatización de tests: unitarios, integración, carga
- Análisis estático de código (SonarQube, Checkstyle)
- Comprension de la automatización de los procesos de despliegue continuo
- Empaquetado con Docker/Jib
- Configuración de Orchestration básica con Kubernetes
- Conocimientos de Blue-green deployments y canary releases
- Identificaciónd e prácticas sostenibles en CI/CD
- Optimización de recursos en pipelines
- Monitorización de consumo energético en despliegues
- Implementaciones que usen prácticas eco-friendly en infraestructura cloud
- HABILIDADES DE GESTIÓN, PERSONALES Y SOCIALES
- Valoración de la automatización como estrategia para la mejora de la eficiencia en las pruebas de software
- Adopción de prácticas respetuosas con el medio ambiente en entornos de computación en la nube
Especialidad formativa