Glossario dello sviluppo backend
70 termini backend spiegati in italiano – con codice eseguibile in quattro linguaggi, diagrammi di architettura e tabelle di confronto. Altri termini vengono tradotti di continuo; il glossario completo in inglese contiene 100 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 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. 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. 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. 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. 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. 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. 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. 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 a degli 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 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. 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. 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. 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
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. 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
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. 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. 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.