Chi c'è dietro Java Pills?
Massimiliano Cova, senior backend developer appassionato di Spring Reactive e divulgazione tech. Le Java Pills sono nate su LinkedIn. Qui puoi esplorarle tutte, ordinate e raccolte in un unico archivio.
-
28 apr 2026
💊 #23: L'illusione della coverage e la trappola combinatoria
La branch coverage come strumento per scovare test mancanti e codice morto, e perché i test di unità sono il 'cheat code' contro l'esplosione combinatoria dei test di integrazione.
-
24 apr 2026
💊 #22: Quella volta che repeat() + empty() mi hanno sciolto la CPU
Un Mono.empty() messo dentro un repeat() diventa un hot loop silenzioso: milioni di sottoscrizioni al secondo, CPU al 100% e zero elementi emessi. Un test per riprodurlo e qualche idea per evitarlo.
-
08 gen 2026
💊 #21: Trilogia di Natale, p. 2 – AI, panettoni e costo cognitivo
In questa seconda parte, GPT-5.2 come strumento di lavoro intensivo: prototipi, refactoring, apprendimento di un nuovo linguaggio, e tutto lo «sbatti» di contorno.
-
06 gen 2026
💊 #20: Trilogia di Natale, p. 1 – C, Game Boy e nostalgia
Una app reader di file di testo scritta in C per Game Boy Advance, che gira su hardware reale tramite EverDrive. Programmazione embedded a basso livello, vincoli reali, e una console restaurata.
-
05 ott 2025
💊 #19: L'AI non è il futuro, è già il presente
Spike sull'uso dell'AI generativa come copilota per progettare BuilderAwareRowMapperR2dbc, una soluzione elegante per mappare risposte R2DBC su oggetti immutabili tramite reflection.
-
29 lug 2025
💊 #18: Ottimizzazione del codice con WebFlux, p. 2 – il metodo share
Il metodo .share() trasforma un Flux cold in hot: la sorgente viene eseguita una sola volta e i subscriber concorrenti ricevono lo stesso stream.
-
21 lug 2025
💊 #17: Ottimizzazione del codice con WebFlux, p. 1 – il metodo cache
Il metodo .cache() di Flux memorizza i valori emessi alla prima sottoscrizione e li riutilizza per quelle successive, evitando ricalcoli sulla sorgente.
-
12 lug 2025
💊 #16: ArgumentCaptor – gotta test 'em all!
Mockito ArgumentCaptor: oltre il semplice verify(), ispezionare gli argomenti effettivamente passati a un metodo mockato per testare anche gli effetti collaterali.
-
03 lug 2025
💊 #15: Orchestrator + Strategy = fallback con stile!
Combinare orchestrator pattern e strategy pattern per gestire fallback dinamici (es. trascrizione audio): codice disaccoppiato, estendibile e testabile.
-
21 giu 2025
💊 #14: Mono è un pigrone? Dipende!
Mono.just() valuta subito l'argomento (eager), Mono.fromCallable() rimanda l'esecuzione fino alla sottoscrizione (lazy): utile per operazioni potenzialmente bloccanti.