Boost Academy
FormaciónEvaluacionesPerfil
Volver
  • En directo

Java — Intermedio

8h de clase en directo·HACK A BOSS·Español

Skills que aprenderás

  • java

Convocatorias

Necesitas un plan activo

Para acceder a los cursos en directo necesitas un plan activo. Estamos trabajando para que los planes estén disponibles pronto — ¡mantente atento!

No hay convocatorias abiertas ahora mismo, pero no te pierdas la oportunidad: guarda este curso y te avisamos en cuanto se abra una convocatoria.

Descripción

Objetivos

Temario

Requisitos técnicos

Conocimientos previos

Detalles de la convocatoria

Recursos

No hay recursos disponibles todavía para esta convocatoria

Curso orientado a desarrolladores que ya dominan los fundamentos de Java y necesitan dar el salto hacia patrones de diseño, programación funcional y prácticas profesionales de calidad de código. A lo largo de 8 horas, los participantes modelarán jerarquías de clases reales, trabajarán con la Stream API y las principales estructuras del framework de colecciones, diseñarán estrategias robustas de manejo de excepciones, aplicarán patrones de diseño clásicos y escribirán pruebas unitarias con JUnit 5 y Mockito; el resultado concreto es un módulo de servicio Java probado, documentado y listo para integrarse en un proyecto de equipo.

  1. Diseñar jerarquías de clases e interfaces que modelen un dominio de negocio, argumentando la elección entre herencia y composición en los puntos de decisión relevantes.
  2. Seleccionar la implementación de Map más adecuada (HashMap, LinkedHashMap o TreeMap) ante requisitos concretos de ordenación y rendimiento, documentando la justificación técnica.
  3. Diseñar una estrategia de manejo de excepciones personalizadas —tanto comprobadas como no comprobadas— en una capa de servicio, diferenciando cuándo es apropiado cada tipo.
  4. Construir pipelines con la Stream API y expresiones lambda para transformar y filtrar colecciones complejas, garantizando la ausencia de efectos secundarios e incluyendo al menos una operación terminal agregadora.
  5. Adaptar los patrones de diseño Factory o Decorator a un problema de dominio propuesto, extendiendo funcionalidad sin romper el código preexistente.
  6. Depurar programas Java con bugs lógicos en manejo de colecciones y en lógica condicional, utilizando el debugger del IDE y registrando el proceso de diagnóstico.
  7. Integrar pruebas unitarias con JUnit 5 y Mockito sobre clases de servicio con dependencias externas, cubriendo al menos los caminos feliz y de error principales.
  8. Justificar la elección entre JDBC directo y JPA/Hibernate básico para un caso de uso de acceso a datos dado, implementando la solución elegida con al menos dos operaciones CRUD.

Bloque 1 — Diseño orientado a objetos avanzado. Se estudia cómo modelar un dominio de negocio mediante jerarquías de clases e interfaces, explorando los principios que determinan cuándo favorecer la herencia frente a la composición. Se analizan casos reales donde la decisión equivocada genera deuda técnica y se documenta formalmente cada punto de decisión como práctica profesional.

Bloque 2 — Framework de colecciones y Stream API. Se revisan las estructuras de mapa más habituales —HashMap, LinkedHashMap y TreeMap— comparando su comportamiento en escenarios de ordenación y rendimiento. A continuación se introduce la programación funcional con expresiones lambda y la Stream API: construcción de pipelines de transformación y filtrado sin efectos secundarios, operaciones intermedias y terminales, y uso de colectores para agregación de resultados.

Bloque 3 — Manejo de excepciones y patrones de diseño. Se profundiza en el diseño de excepciones personalizadas checked y unchecked aplicadas a una capa de servicio, estableciendo criterios claros para elegir cada tipo. Seguidamente se trabajan los patrones Factory y Decorator: se parte de una implementación base y se aplica el patrón seleccionado para incorporar nuevos requisitos funcionales sin alterar el contrato existente.

Bloque 4 — Calidad de código: depuración, pruebas y acceso a datos. Se practica la depuración sistemática con el debugger del IDE sobre programas que contienen bugs lógicos intencionados en colecciones y en lógica condicional, registrando cada paso del diagnóstico. Posteriormente se escribe una suite de pruebas unitarias con JUnit 5 y Mockito, haciendo dobles de test para las dependencias externas y verificando tanto el camino feliz como los escenarios de error. El bloque cierra con una comparativa entre JDBC directo y JPA/Hibernate básico, eligiendo la tecnología adecuada según el caso de uso e implementando las operaciones CRUD correspondientes.

  • JDK: versión 17 LTS o superior instalada y configurada en el PATH.
  • IDE: IntelliJ IDEA Community Edition 2023.x o superior (recomendado) o Eclipse IDE for Java Developers 2023-09; se requiere el plugin de depuración integrado activo.
  • Herramienta de construcción: Maven 3.9+ o Gradle 8+ para gestión de dependencias.
  • Dependencias de pruebas: JUnit 5 (junit-jupiter 5.10+) y Mockito 5.x, declaradas en el pom.xml o build.gradle del proyecto entregado.
  • Base de datos local: H2 en modo embebido (incluida como dependencia Maven/Gradle) para los ejercicios de JDBC y JPA; no se requiere instalación de servidor externo.
  • Control de versiones: Git 2.x instalado; se entregará el trabajo mediante repositorio Git personal.
  • Conectividad: acceso a internet para descargar dependencias desde Maven Central durante la sesión.
  • Sintaxis fundamental de Java: tipos primitivos, estructuras de control, arrays y cadenas.
  • Programación orientada a objetos básica: clases, objetos, encapsulación, herencia simple e interfaces a nivel de declaración.
  • Uso básico de un IDE Java (compilación, ejecución y navegación de proyectos).
  • Manejo introductorio de excepciones estándar (try-catch-finally).
  • Familiaridad con ArrayList y HashMap a nivel de uso, sin necesidad de conocer su implementación interna.

Estos conocimientos se adquieren en el curso JAV01 — Java: Iniciación (prerrequisito obligatorio).