Note dal lavoro
Appunti tecnici
Note brevi su scelte tecniche fatte su questo sito e su altri progetti: frontend, backend e lavoro con gli agenti AI.
- Backend · 4 minAPI sicure da ripetere: idempotenza e retryCosa succede quando una richiesta riesce ma la risposta si perde: Idempotency-Key, vincoli univoci e come evitare ordini duplicati.
- Backend · 5 minLeggere EXPLAIN in MySQL senza paura (e scegliere l’indice giusto)Le quattro colonne di EXPLAIN che contano, i motivi per cui un indice non viene usato e come costruire un indice composto per una query reale.
- Backend · 5 minCode e job in Laravel: spostare il lavoro lento fuori dalla richiestaDispatch, tentativi, backoff e job falliti: come usare le code di Laravel in modo affidabile e cosa controllare dopo ogni deploy.
- AI · 4 minPrompt per agenti di coding: criteri di accettazione, non desideriUn prompt efficace descrive come verificare il risultato. Una struttura semplice con contesto, vincoli e controlli concreti.
- AI · 4 minGit con gli agenti AI: branch, commit piccoli e come tornare indietroCome usare Git per lavorare in fretta con un agente senza paura di rompere qualcosa: branch dedicati, diff letto e comandi da non delegare.
- AI · 5 minVibe coding con criterio: dalla scintilla al codice che puoi mantenereCome lavoro con un agente AI senza perdere il controllo: vincoli prima del codice, passi piccoli, diff letto per intero e un commit solo quando sono io a dirlo.
- AI · 5 minScrivere istruzioni per un agente: CLAUDE.md, AGENTS.md e regole di CursorCosa mettere nel file di istruzioni che l’agente legge a ogni sessione, come tenerlo corto e come far diventare ogni errore ripetuto una riga utile.
- AI · 5 minVerificare il lavoro di un agente: se non l’hai misurato, non è finitoTre errori reali capitati lavorando con un agente AI su questo sito e le verifiche che li avrebbero intercettati prima: build, ambiente di sviluppo, screenshot e metriche.
- AI · 5 minCursor, Claude Code o Codex: come scegliere lo strumento giustoUn criterio per scegliere tra editor con AI integrata e agenti da terminale o cloud: dove lavori, quanto controllo vuoi, quanto dura il compito e cosa puoi condividere.
- Backend · 4 minQuery N+1 in Laravel: come riconoscerle e toglierleIl problema più comune delle pagine lente in Laravel: come individuarlo, come risolverlo con l’eager loading e come far fallire i lazy load accidentali in sviluppo.
- Backend · 4 minPaginazione in Laravel: offset o cursore?paginate, simplePaginate e cursorPaginate a confronto: costo reale, comportamento quando i dati cambiano e quale scegliere per una tabella, un feed o un’API.
- Frontend · 4 minQuando togliere un effetto: da three.js a una griglia di punti in CSSPerché ho sostituito un reticolo 3D in three.js con una griglia di punti in CSS nella hero del mio portfolio, e cosa ho imparato sul peso visivo e tecnico di un effetto.
- Frontend · 4 minTesto che si illumina allo scroll: come non rompere il contrastoUn effetto di lettura progressiva parte da parole quasi invisibili: cosa chiede WCAG sul contrasto, come l’ho misurato con Lighthouse e quale opacità minima ho scelto.
- Frontend · 5 minRendere indicizzabile una SPA React con Vite: prerender, lingue e sitemapCome ho trasformato un portfolio React a pagina singola in pagine statiche per lingua, con canonical, hreflang, sitemap generata in build e qualche ottimizzazione di caricamento.