Blog

Notes sobre enginyeria backend, arquitectura i IA.

Un exemple senzill de Spring Integration

18 de set. 2026

Un exemple senzill de Spring Integration 1. Introducció Spring Integration és un framework que ajuda a connectar sistemes dins d’una aplicació Spring. Usa les mateixes idees que els Enterprise Integration Patterns: missatges, canals i endpoints. Si ja coneixes Spring Boot, resulta familiar al cap de pocs minuts. En aquest article mostraré un exemple mínim de «hello world». Enviarem un nom a través d’un gateway, el passarem per un canal i obtindrem una salutació.

Llegir més →

Construir una API Java fluent amb Consumer i BiConsumer

17 de set. 2026

Construir una API Java fluent amb Consumer i BiConsumer 1. Introducció Quan construeixo llibreries internes petites, intento que l’API pública sigui fàcil de llegir. Darrerament faig servir sovint Consumer i BiConsumer perquè els callers puguin configurar objectes sense escriure classes anònimes llargues. El resultat s’assembla a un builder, però cada pas és només un lambda que prepara alguna cosa. En aquest article mostraré un exemple inventat: un MenuBuilder petit que permet afegir elements a un menú.

Llegir més →

Observabilitat per a virtual threads: traçar una petició Spring Boot 3 amb Micrometer i OpenTelemetry

24 d’ag. 2026

Observabilitat per a virtual threads: traçar una petició Spring Boot 3 amb Micrometer i OpenTelemetry 1. Introducció Una propietat passa un servei Spring Boot a virtual threads: spring.threads.virtual.enabled=true Després d’aquest canvi, el throughput pot millorar. També es pot perdre informació d’observabilitat. Les traces poden perdre spans fills, els logs poden perdre els seus trace ids i les mètriques dels thread pools ja no mostren el límit real. En aquest article mostraré com resoldre aquests tres problemes.

Llegir més →

Structured concurrency i scoped values a Java 25: substituir ThreadLocal en pipelines de peticions

22 d’ag. 2026

Structured concurrency i scoped values a Java 25: substituir ThreadLocal en pipelines de peticions 1. Introducció Els virtual threads fan barat executar molts tasks. Dos patrons antics encara causen problemes en pipelines de peticions: iniciar tasks de fan-out sense un scope compartit i guardar el context de la petició en ThreadLocal. En aquest article mostraré com StructuredTaskScope i ScopedValue resolen aquests problemes a Java 25. També mostraré com passar de l’API preview de Java 21 i quins problemes encara cal tenir en compte.

Llegir més →

Virtual threads a Java 21: guia pràctica per a plataformes backend

24 de jul. 2026

Virtual threads a Java 21: guia pràctica per a plataformes backend 1. Introducció Les aplicacions backend sovint fan servir thread pools limitats. Una petició que espera una base de dades o un altre servei HTTP manté ocupat un platform thread. Quan el pool s’omple, la latència creix. En aquest article mostraré com funcionen els virtual threads, com activar-los, com comprovar-los i quins problemes cal evitar. Java 21 els converteix en una funcionalitat estable, però no són un interruptor general de rendiment.

Llegir més →

ADR-01: generador de llocs estàtics per al meu portfolio d’enginyeria

21 de jul. 2026

ADR-01: generador de llocs estàtics per al meu portfolio d’enginyeria 1. Introducció Necessitava un lloc personal que pogués mantenir mentre creix la meva carrera. Havia de ser fàcil d’actualitzar, estar guardat a Git, carregar ràpid i ser senzill de desplegar a GitHub Pages. En aquest article mostraré les opcions que vaig considerar i per què vaig triar Hugo per a aquest lloc. 2. Context El lloc ha de tenir pàgines de portfolio i articles.

Llegir més →

De «Hello world» a un portfolio d’enginyeria

21 de jul. 2026

De «Hello world» a un portfolio d’enginyeria 1. Introducció He reconstruït giro-dev.github.io des d’una pàgina provisional fins a un portfolio d’enginyeria. L’objectiu era fer fàcils de trobar la meva feina i la meva experiència. En aquest article mostraré què ha canviat i per què he fet aquests canvis. 2. Objectiu Volia passar d’una pàgina provisional a un perfil en línia per presentar-me a rols de Staff Engineer, Principal Engineer i Software Architect en empreses orientades al producte.

Llegir més →

Matriarch: generació de dades de prova per a Java

21 de jul. 2026

Matriarch: generació de dades de prova per a Java 1. Introducció Els tests de Java sovint necessiten molts objectes abans de poder provar el comportament real. Crear aquests objectes a mà porta temps i fa que els tests siguin més difícils de llegir. En aquest article mostraré la idea de Matriarch, una llibreria Java petita que crea dades de prova amb el patró Object Mother. 2. Problema Escriure fixtures de prova per a POJOs i Records de Java és repetitiu i pot introduir errors.

Llegir més →