IFCD0184

Análisis, arquitectura y despliegue de software en Java

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.

Diseñado y producido por Smartmind

Disponibilidad:

Bajo demanda

Contenidos

IFCD0184 — Análisis, arquitectura y despliegue de software en Java

Módulo 1

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

Contenidos: 1

Conocimiento/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

Módulo 2

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

Contenidos: 1

Conocimiento/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

Módulo 3

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

Contenidos: 1

Conocimiento/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