Glossario dello sviluppo backend
101 termini backend spiegati in italiano – con codice eseguibile in quattro linguaggi, diagrammi di architettura e tabelle di confronto. Tutti i termini sono tradotti; il glossario completo in inglese contiene 101 termini.
Architettura cloud e modelli di hosting
Architettura a microservizi vs. monolite Un monolite è una sola applicazione con un unico deployment; i microservizi la spezzano in servizi piccoli e indipendenti che dialogano via API. Architettura disaccoppiata (backend headless) L'architettura disaccoppiata è un modello di progettazione in cui frontend e backend sono sistemi distinti che comunicano solo attraverso le API. Architettura serverless L'architettura serverless è un modello di esecuzione cloud in cui il provider esegue il codice su richiesta: nessun server da provisionare o gestire. BaaS open-source vs. BaaS proprietario gestito Un BaaS open-source è una piattaforma backend con un core ospitabile in proprio; un BaaS proprietario gira solo su infrastruttura controllata dal provider. BaaS vs. backend personalizzato BaaS vs. backend personalizzato è una scelta tra comprare e costruire: adottare un backend pronto dietro un SDK, oppure progettarne e gestirne uno proprio. BaaS vs. serverless Il serverless è un modello di esecuzione in cui il provider esegue il codice su richiesta; BaaS è un modello serverless che consegna il backend già pronto. CDN (content delivery network) Un CDN è una rete di server distribuiti che mette in cache i contenuti vicino agli utenti, così pagine e file si caricano in fretta ovunque. CI/CD (continuous integration e delivery) Il CI/CD è una pratica che automatizza build, test e rilascio del codice, così ogni modifica passa dal commit alla produzione a piccoli passi. Codice boilerplate del backend Il codice boilerplate del backend è una massa di impiantistica lato server ripetitiva – auth, CRUD, config – scritta allo stesso modo progetto dopo progetto. Containerizzazione La containerizzazione è un modo di impacchettare un'app con tutte le sue dipendenze in un'unità isolata che gira identica su qualsiasi host. Hosting cloud multi-tenant L'hosting cloud multi-tenant è un modello in cui gli stessi server e software servono molti clienti, con isolamento logico tra i tenant. IaaS vs. PaaS vs. CaaS vs. FaaS vs. BaaS vs. mBaaS vs. SaaS Lo spettro dei modelli di servizio cloud è una scala – IaaS, CaaS, PaaS, FaaS, BaaS, mBaaS, SaaS – ordinata in base a quanto ne gestisce il provider. Infrastructure as a Service (IaaS) IaaS è un modello cloud che affitta a richiesta risorse di calcolo fondamentali – macchine virtuali, archiviazione, rete – con fatturazione a consumo. Isolamento tra ambiente di staging e produzione in BaaS L'isolamento staging-produzione è una pratica che separa app, database e chiavi per ambiente, così che i test non tocchino mai i dati reali. Kubernetes Kubernetes è una piattaforma open-source che automatizza deployment, scalabilità e gestione di applicazioni containerizzate su molte macchine. mBaaS vs. BaaS Il mBaaS è la forma mobile-first del Backend as a Service; il BaaS è il modello più ampio che serve allo stesso modo client mobile, web e server. Object storage gestito e distribuzione degli asset L'object storage gestito è un servizio BaaS che archivia i file caricati via SDK e li distribuisce tramite URL serviti da CDN, con controllo degli accessi. PaaS vs. BaaS PaaS è un modello cloud in cui il provider gestisce la piattaforma su cui viene distribuito il codice, mentre l'applicazione resta da scrivere e mantenere. Scalabilità dei backend applicativi moderni Scalare un backend applicativo moderno è un processo di aggiunta di capacità – calcolo, database, distribuzione – perché il traffico in crescita resti veloce. Sviluppo No-Ops (Zero-Ops) No-Ops è un modello operativo in cui la piattaforma automatizza il lavoro sull'infrastruttura tanto da far rilasciare codice senza un team di ops. Vendor lock-in nel cloud Il vendor lock-in nel cloud è una dipendenza da un solo provider così profonda che cambiare costerebbe più – in denaro, tempo e rischio – che restare.
Database e scalabilità
API di database generate automaticamente (GraphQL e REST) Le API di database generate automaticamente sono le interfacce che uno strumento ricava leggendo lo schema ed espone come endpoint REST o GraphQL. Architettura di database multi-tenant L'architettura di database multi-tenant è un modello per archiviare molti clienti in un unico livello dati, isolati per riga, schema o database dedicato. Campi Pointer vs. Relation nella modellazione dei dati BaaS Un campo Pointer è un riferimento tipizzato a un singolo oggetto; un campo Relation è un join gestito che collega molti oggetti a molti altri. Connection pooling serverless nei database gestiti Il connection pooling serverless è una tecnica che condivide poche connessioni reali al database tra molte istanze di funzioni di breve durata. CRUD (Create, Read, Update, Delete) Il CRUD è l'acronimo di create, read, update e delete: le quattro operazioni di base che ogni archivio di dati persistente deve supportare. Database NoSQL vs. SQL Un database SQL è un archivio relazionale con tabelle fisse e join; NoSQL è una famiglia di modelli flessibili progettati per scalare in orizzontale. Gestione visuale del database (interfacce tipo foglio di calcolo) La gestione visuale del database è un modo di lavorare con i dati tramite un'interfaccia grafica – griglie, form, filtri – invece che con query grezze. Indice del database Un indice del database è una struttura di ricerca ordinata che permette al motore di trovare le righe corrispondenti senza scansionare l'intera tabella. Isolamento dei tenant nei database cloud condivisi L'isolamento dei tenant è una disciplina di muri dentro i sistemi condivisi: controlli che tengono ogni tenant sigillato rispetto a tutti gli altri. Livello di astrazione del database (DBAL) Un livello di astrazione del database è uno strato di API tra il codice e il database che nasconde quale motore, dialetto e driver stiano sotto. Modellazione dei dati (Pointer e Relation) La modellazione dei dati è un processo che mappa entità, attributi e relazioni prima di decidere come un database le archivierà. Permessi di classe (CLP) e sicurezza dello schema Un permesso di classe è una regola sullo schema di una classe che controlla quali utenti o ruoli possono eseguire ciascuna operazione su quella classe. Point-in-Time Recovery (PITR) e backup in BaaS Il point-in-time recovery è un metodo di restore che riproduce un log delle modifiche sopra un backup di base per ricostruire il database a un secondo scelto. Query geospaziali e indicizzazione basata sulla posizione in BaaS Una query geospaziale è una ricerca nel database che filtra e ordina i record per posizione – vicino a un punto, entro un raggio o dentro un'area. Query relazionali (join) nei database documentali Una query relazionale in un database documentale è un join fatto con riferimenti e lookup invece che con chiavi esterne – o evitato incorporando. Query sul database e linguaggi di query Una query sul database è una richiesta strutturata di dati – filtrare, ordinare, proiettare, paginare – scritta in un linguaggio che il motore esegue. Replica di database multi-regione e ottimizzazione della latenza La replica multi-regione è una topologia di database che copia i dati fra regioni geografiche per ridurre la latenza di lettura e resistere ai guasti. Schema del database Uno schema del database è un progetto che definisce come sono organizzati i dati – classi, colonne, tipi e relazioni, ma non i dati stessi. Sicurezza a livello di riga (RLS) La sicurezza a livello di riga è un meccanismo del database in cui delle policy filtrano, a ogni query, le righe che ciascuno può vedere o modificare. Sicurezza del livello dati vs. del livello applicativo La sicurezza del livello applicativo è una guardia nel codice; quella del livello dati è una guardia sui dati stessi: servono entrambe. Transazioni ACID Una transazione ACID è un gruppo di operazioni di database che fanno commit come un'unica unità: atomica, coerente, isolata e durevole.
API e tempo reale
API (interfaccia di programmazione) Un'API è un insieme di regole che permette a un'applicazione di richiedere dati e funzionalità a un'altra senza conoscerne il codice interno. API REST Un'API REST è un tipo di API che segue lo stile architetturale REST: risorse identificate da URL, richieste stateless e metodi HTTP standard. Architettura di API gateway Un API gateway è la porta d'ingresso gestita alle API: un unico punto di accesso che instrada, autentica e applica il rate limiting a ogni richiesta. Cross-Origin Resource Sharing (CORS) CORS è un meccanismo del browser con cui un server dichiara quali altre origin possono chiamarlo, allentando di proposito la Same-Origin Policy. Endpoint API Un endpoint API è un URL specifico in cui un'API riceve le richieste per una risorsa – abbinato a un metodo HTTP, definisce un'operazione. GraphQL GraphQL è un linguaggio di query per le API e un runtime lato server che restituisce esattamente i campi richiesti da ogni client in una sola richiesta. GraphQL Subscriptions vs. WebSocket nei backend gestiti Una subscription GraphQL è un flusso di eventi tipizzato e definito dallo schema; un WebSocket è il trasporto grezzo su cui di solito viaggia. GraphQL vs. API REST REST è uno stile di API con molti endpoint fissi; GraphQL è un linguaggio di query in cui il client chiede a un solo endpoint i campi che gli servono. Live Queries in tempo reale Una live query è una sottoscrizione a una query sul database: il server spinge gli eventi create, update e delete delle righe corrispondenti. Notifiche push vs. sottoscrizioni Live Query Una notifica push è un avviso consegnato dal sistema operativo che raggiunge le app chiuse; una live query trasmette le modifiche ai dati mentre l'app è aperta. Ottimizzazione del payload delle API L'ottimizzazione del payload delle API è una pratica che riduce ciò che un'API invia – meno campi, pagine limitate, compressione – per risposte rapide. Overfetching e underfetching L'overfetching è un problema delle API in cui le risposte portano più dati del necessario; l'underfetching impone richieste in più per averne abbastanza. Pattern Pub/Sub (publish-subscribe) Il pub/sub è un pattern di messaggistica in cui i publisher inviano messaggi a dei topic su un broker e ogni subscriber di un topic ne riceve una copia. Presenza (stato online) La presenza è un segnale in tempo reale che indica se un utente è online, assente o offline, tenuto aggiornato da connessioni e heartbeat. Problema delle query N+1 Il problema delle query N+1 è un pattern in cui recuperare N record innesca una query in più per record – N+1 round trip invece di uno o due. Rate limiting e throttling delle API Il rate limiting è un controllo che limita quante richieste può fare un client per finestra; il throttling rallenta l'eccesso invece di rifiutarlo. SDK backend (software development kit) Un SDK backend è un kit di librerie e utilità che permette alle app di parlare con un servizio di backend nel proprio linguaggio, senza HTTP grezzo. Server-Sent Events vs. WebSocket vs. polling Il polling è un modello pull in cui il client chiede in continuazione; SSE e WebSocket tengono aperta una connessione perché il server spinga in tempo reale. Sincronizzazione dei dati offline-first nei backend mobile La sincronizzazione offline-first è un modello in cui l'app legge e scrive prima su un archivio locale, poi si riconcilia con il server quando torna online. WebSocket e sincronizzazione in tempo reale Un WebSocket è una connessione persistente e bidirezionale tra client e server: ogni lato invia messaggi nell'istante in cui accadono.
Autenticazione e sicurezza
Adapter di login social: integrazione OAuth in BaaS Un adapter di login social è un componente del backend che verifica i token di un identity provider e li trasforma in un record utente e in una sessione. Autenticazione a più fattori (MFA) L'autenticazione a più fattori è un controllo di accesso che richiede due o più tipi diversi di prova: qualcosa che si sa, si ha o si è. Autenticazione senza password L'autenticazione senza password è un modello di accesso che verifica l'identità con una chiave sul dispositivo o la biometria, non con un segreto memorizzato. Autenticazione vs. autorizzazione L'autenticazione è il controllo di chi effettua la richiesta; l'autorizzazione è la decisione, a ogni richiesta, su che cosa sia permesso fare. Controllo degli accessi basato sui ruoli (RBAC) Il controllo degli accessi basato sui ruoli è un modello di autorizzazione in cui i permessi si agganciano ai ruoli, mai direttamente alle persone. Crittografia dei dati a riposo e in transito La crittografia a riposo è un controllo che rende illeggibili senza chiavi i dati archiviati; quella in transito protegge i dati che attraversano le reti. Gestione delle identità e degli accessi (IAM) L'IAM è un framework di policy e tecnologie che garantisce agli utenti giusti il giusto accesso alle risorse giuste al momento giusto. Gestione delle sessioni La gestione delle sessioni è una disciplina per creare, validare e distruggere lo stato lato server che lega le richieste HTTP a un utente. Hardening della sicurezza BaaS: CLP, ACL e protezione della master key L'hardening della sicurezza BaaS è un insieme di controlli a strati – CLP, ACL e disciplina delle chiavi – che chiude le aperture con cui un backend nasce. JSON Web Token (JWT) Un JSON Web Token è un token compatto e sicuro per gli URL che trasporta claim JSON firmati e permette di verificare le richieste senza sessioni memorizzate. Liste di controllo degli accessi (ACL) Una lista di controllo degli accessi è una lista allegata a una risorsa che indica quali utenti o ruoli possono accedervi e che cosa ciascuno può fare. OAuth 2.0 e login social OAuth 2.0 è uno standard di autorizzazione che permette alle app di accedere a un account su un altro servizio: il login social si costruisce sopra. Prevenzione del Cross-Site Scripting (XSS) Il cross-site scripting è un attacco che inietta script malevoli in pagine fidate; prevenirlo significa codificare l'output in base al contesto. Sicurezza delle chiavi API Una chiave API è una stringa unica che identifica l'app che chiama un'API; la sicurezza delle chiavi API consiste nel limitarne l'ambito e proteggerla. Single Sign-On (SSO) Il single sign-on è un metodo di autenticazione in cui un solo accesso presso un identity provider apre molte applicazioni indipendenti.
Logica backend e serverless
Architettura orientata agli eventi (EDA) L'architettura orientata agli eventi è uno stile di progettazione in cui i servizi annunciano fatti immutabili come eventi e i consumatori reagiscono da soli. Backend (lato server) Un backend è un sistema lato server: codice, database e infrastruttura che gestiscono le richieste di un'app e ne conservano i dati dietro l'interfaccia. Cloud Code (funzioni serverless) Cloud Code è un modello serverless in cui la logica del backend gira come funzioni lato server, attivate da chiamate, eventi sui dati o pianificazioni. Cloud Code pianificato (cron job) Un cron job è un compito che si esegue automaticamente secondo una pianificazione temporale; il Cloud Code pianificato porta l'idea nelle funzioni serverless. Cold start nel serverless Un cold start è un costo di latenza che si paga quando una piattaforma serverless deve creare e inizializzare un nuovo ambiente prima di eseguire il codice. Edge computing e funzioni serverless edge L'edge computing è un modello che esegue il calcolo vicino agli utenti o alle fonti di dati; le funzioni edge sono codice serverless eseguito nei PoP di un CDN. Funzioni serverless vs. microservizi Una funzione serverless è una singola unità di deployment di logica di backend; un microservizio è un servizio intero gestito in autonomia. Job in background e scheduler di attività Un job in background è un compito che gira fuori dal ciclo della richiesta: accodato dall'app, eseguito dai worker, ritentato in caso di errore. Middleware (ciclo di vita della richiesta) Il middleware è una funzione della pipeline della richiesta che ispeziona o modifica richieste e risposte prima della logica della route. Notifiche push (APNs e FCM) Una notifica push è un messaggio avviato dal server che i servizi push della piattaforma consegnano a un dispositivo, anche con l'app chiusa. Orchestrazione di API L'orchestrazione di API è un pattern in cui un livello di coordinamento chiama più API in sequenza e restituisce un unico risultato combinato. Trigger del database (BeforeSave e AfterSave) Un trigger del database è un hook di codice che si esegue automaticamente sugli eventi dei dati: prima di un save per validare, dopo per reagire. Webhook (webhook guidati dagli eventi) Un webhook è un callback HTTP automatico: quando si verifica un evento, un sistema invia in POST un payload a un URL registrato da un altro sistema.
IA e stack moderno
Agente IA Un agente IA è un sistema guidato da un LLM che persegue un obiettivo in un ciclo: ragiona, chiama un tool, osserva il risultato e ripete. API di LLM Un'API di LLM è un endpoint HTTP verso un modello di linguaggio ospitato: si invia un prompt, si riceve testo generato, fatturato a token. Database vettoriale ed embedding Un embedding è un vettore numerico che cattura il significato; un database vettoriale archivia e cerca quei vettori per similarità, non per uguaglianza esatta. MCP (Model Context Protocol) L'MCP è uno standard aperto che permette alle applicazioni IA di collegarsi a tool e dati esterni con un solo protocollo, senza integrazioni su misura. RAG (Retrieval-Augmented Generation) Il RAG è una tecnica che recupera documenti al momento della query e li aggiunge al prompt, perché un LLM risponda a partire dai dati e non dalla memoria. Vibe coding Il vibe coding è un flusso di lavoro in cui si costruisce software dando prompt a un'IA e accettando il codice generato in gran parte senza revisione. Webhook vs. tool calling degli agenti Il tool calling degli agenti è un pull in cui un'IA decide di invocare una funzione; un webhook è un push scatenato da un evento esterno.
Frontend e distribuzione web
JAMstack JAMstack è uno stile di architettura web che precompila il frontend in markup statico servito da un CDN, con JavaScript e API per le parti dinamiche. PWA (Progressive Web App) Una PWA è una web app che usa service worker, un manifest e HTTPS per essere installabile, funzionare offline e ricevere notifiche push. SSR vs. CSR vs. SSG SSR vs. CSR vs. SSG è un confronto tra strategie di rendering in base a dove e quando viene generato l'HTML: in fase di build, sul server o nel browser. Sviluppo multipiattaforma Lo sviluppo multipiattaforma è un modo di costruire un'app da un'unica codebase condivisa che gira su più piattaforme – iOS, Android, web, desktop.