Author: Geovanny Mendoza

/ Backend, Java
Patrón State en Java: cuando el mismo botón hace cosas distintas
El Patrón State convierte las reglas de negocio implícitas en comportamiento explícito. Cada estado sabe exactamente qué puede y qué no puede hacer. Cuando el negocio agrega un nuevo estado del ciclo de vida, creas una clase nueva con sus propias reglas — las existentes no se tocan.
Read more
/ Backend, Java
Patrón Observer en Java: reaccionar a cambios sin acoplarte a ellos
El Patrón Observer invierte el control — en vez de que el service empuje lógica hacia afuera, los interesados se suscriben y reaccionan por su cuenta. Agregar una nueva reacción al cambio de stock es crear una clase nueva, no editar la existente.
Read more
/ Backend, Java
Patrón Facade en Java: un solo punto de entrada para la complejidad
La Facade es el caso de uso hecho clase. Cuando un endpoint empieza a coordinar cinco servicios en orden, con validaciones intermedias, esa lógica no pertenece al controller. Pertenece a la Facade, donde el flujo es legible y los cambios de negocio tienen un solo lugar al que ir.
Read more
/ Backend, Java
Patrón Adapter en Java: cuando el mundo externo no habla tu idioma
El Patrón Adapter es la capa de traducción entre tu sistema y los SDKs externos. Twilio, SendGrid, Firebase — cada uno habla su idioma. El adapter los hace hablar el tuyo. Si el proveedor cambia, solo cambia el adapter. El service y el controller no se enteran.
Read more
/ Backend, Java
Patrón Strategy en Java: cómo dejar de escribir if/else eternos
El patrón Strategy convierte un if/else que nadie quiere tocar en una lista de clases donde cada una sabe exactamente qué puede hacer. Con Spring Boot, agregar un proveedor nuevo es crear un archivo nuevo, sin editar nada que ya funciona.
Read more
/ Backend, Java
Concurrencia estructurada en Java: qué resuelve, cómo se usa y por qué aprenderla ahora
Una guía práctica del modelo de concurrencia que reemplaza veinte años de código frágil con ExecutorService y CompletableFuture. Para quien ya sabe qué es un hilo y se ha quemado al menos una vez con ellos.
Read more
/ Backend, Java
Serie: Programación Funcional en Java – Parte 8: Railway Oriented Programming con Vavr
Aprende Railway Oriented Programming con Vavr en Java. Un patrón que simplifica el manejo de errores construyendo pipelines donde el flujo feliz y el flujo de error corren en paralelo, sin excepciones ni if-else anidados.
Read more
/ Backend, Java
Serie: Programación Funcional en Java – Parte 7: Vavr - Funciones, Currying y Evaluación Perezosa
Explora las interfaces funcionales de Vavr, desde Function0 hasta Function8. Aprende qué es el currying, cómo se usa la aplicación parcial y cómo la evaluación perezosa con memoización puede mejorar el rendimiento de tu código.
Read more
/ Backend, Java
Serie: Programación Funcional en Java – Parte 6: Vavr Avanzado - Validation, Pattern Matching y Colecciones
Domina las características avanzadas de Vavr. Validation para acumular errores, Pattern Matching estilo Scala, Colecciones inmutables y Tuplas para código funcional profesional.
Read more
/ Backend, Java
Serie: Programación Funcional en Java – Parte 5: Vavr - Try, Either y Option
Descubre Vavr, la librería que llena los huecos funcionales de Java. Aprende a usar Try, Either y Option para manejar errores sin try-catch y valores ausentes sin NullPointerException.
Read more
/ Backend, Arquitectura
Arquitectura Hexagonal en Java: del concepto al código
La arquitectura hexagonal separa la lógica de negocio de los frameworks, bases de datos e interfaces externas. Este artículo lo explica con un sistema completo de pedidos en Java, incluyendo puertos, adaptadores y pruebas que funcionan sin Spring ni base de datos.
Read more
/ Backend, Seguridad
Spring Boot + Vaadin + Auth0: autenticación y registro de usuarios
Reemplazamos Okta por Auth0 en una aplicación Vaadin con Spring Boot. El post cubre la configuración OAuth 2.0, el registro de usuarios vía la API v2 de Auth0, el formulario de registro con Vaadin Flow y la protección de rutas con SecurityFilterChain.
Read more
/ Backend, Arquitectura
Construcción de Monolitos Modulares con Spring Modulith
Spring Modulith organiza una aplicación Spring Boot en módulos con fronteras claras, pruebas aisladas y documentación automática. Todo en un solo despliegue, sin la complejidad operativa de los microservicios.
Read more
/ Backend, Arquitectura
Apache Kafka con Spring Boot y Kotlin: Arquitectura Orientada a Eventos
Construye un sistema de mensajería con Apache Kafka, Spring Boot y Kotlin. Productor, consumidor, persistencia con H2, pruebas unitarias e integración, y visualización con el plugin Kafkalytic.
Read more
/ Backend, Java
CRUD con Vaadin Flow 25: Despliegue con Docker Compose y PostgreSQL
Construye un CRUD completo con Vaadin Flow 25.0.7, Spring Boot 4 y PostgreSQL 17. Spring Boot gestiona Docker Compose automáticamente y Flyway controla el esquema. Todo en Java.
Read more
/ Backend, Java
Serie: Programación Funcional en Java – Parte 4: Referencia a Métodos y Parallel Streams
Domina las referencias a métodos (::) y el procesamiento paralelo en Java. Aprende cuándo usar Parallel Streams para optimizar el rendimiento y cuándo evitarlos.
Read more
/ Backend, Java
Serie: Programación Funcional en Java – Parte 3: Optional API y el Manejo Seguro de Nulos
Domina la Optional API de Java para eliminar NullPointerException de tu código. Aprende la diferencia entre null y vacío, y cómo integrar Optional con Streams en escenarios reales.
Read more
/ Backend, Testing
Testing con Spring Boot: Una Guía Actualizada
Guía completa sobre testing en Spring Boot utilizando JUnit 5, Mockito y TDD. Incluye ejemplos prácticos paso a paso para construir una aplicación con pruebas unitarias efectivas.
Read more
/ Backend, Java
Serie: Programación Funcional en Java – Parte 2: Streams, Collectors y Expresiones Lambda en Diseño de Software
Transformación de datos y diseño funcional en Java. Aprende a usar Streams, Collectors y expresiones lambda para implementar patrones como estrategia, delegación y decorador con un enfoque práctico.
Read more
/ Backend, Java
Serie: Programación Funcional en Java – Parte 1: Introducción y Fundamentos
Guía completa sobre programación funcional en Java. Explora los fundamentos, expresiones lambda, Streams API e inmutabilidad con ejemplos prácticos para escribir código más conciso y mantenible.
Read more
/ Backend, Arquitectura
Principios SOLID en Java
Guía práctica de los principios SOLID en Java, manteniendo el contenido original y agregando versiones actualizadas de los ejemplos para Java 21+.
Read more
/ Backend, Kotlin
Construir una Api Rest reactiva con Spring, Kotlin y Coroutines
Guía paso a paso para construir una API REST reactiva desde cero usando Spring Boot, Kotlin y Coroutines, integrando R2DBC con PostgreSQL, Docker y Kotlin Flows para lograr un backend no bloqueante, claro y mantenible.
Read more
/ Inteligencia Artificial, Backend
Spring AI + MCP: Fundamentos y Aplicaciones Prácticas para Desarrolladores
Cómo integrar Model Context Protocol y Spring AI para construir aplicaciones de IA aumentada con datos reales, herramientas externas y capacidades personalizadas.
Read more
/ Backend
Spring Boot 4 y Spring Framework 7: La Evolución Deliberada del Desarrollo Java Empresarial
Exploramos cómo las últimas versiones de Spring Boot y Spring Framework están transformando el desarrollo Java moderno con un enfoque más modular, eficiente y preparado para la nube.
Read more