← Tutti gli episodi
Copertina di Evolvere senza rompere: i numeri dei campi
Stagione 47 · Episodio 006

Evolvere senza rompere: i numeri dei campi

8 settembre 2026 4:57
0:00 4:57

Ciao, e benvenuto nella sesta puntata della quarantasettesima stagione. Un contratto rigoroso, come quello di gRPC, sembra fragile davanti al cambiamento: se tutto è così stretto e formale, cosa succede quando devi cambiarlo? Rischi di rompere ogni servizio che ci si appoggia? È la stessa domanda che ha tormentato le risorse, e persino il linguaggio del web. E la risposta di gRPC è insolitamente elegante e concreta. Oggi capiamo come evolvere senza rompere: i numeri dei campi.

Partiamo dalla domanda, perché è seria. Come cambia, nel tempo, un sistema vincolato a un contratto così stretto, senza rompere tutti quelli che dipendono da lui? In un grande sistema fatto di molti servizi, non puoi mai aggiornare tutti insieme, nello stesso istante: alcuni avranno la versione nuova, altri ancora quella vecchia, per un bel po'. Devono convivere. Il vecchio e il nuovo devono continuare a capirsi, anche se parlano versioni leggermente diverse del contratto. Come si fa a evolvere l'accordo senza far crollare metà del sistema?

Voglio darti la soluzione, perché è semplice e bella. Nel contratto, ogni campo di un messaggio ha un numero. Non solo un nome: un numero. E le regole sono poche e sacre: non riusi mai un numero, e non cambi mai cosa significa un numero già usato. Per far evolvere il contratto, aggiungi campi nuovi, con numeri nuovi. Il vecchio codice, che non conosce i numeri nuovi, semplicemente li ignora: passa oltre, senza scomporsi. Il codice nuovo, leggendo messaggi vecchi che non hanno i campi nuovi, li vede come assenti, e se la cava. Entrambe le direzioni funzionano, grazie a quei numeri che ancorano il significato.

Voglio farti vedere che funziona in tutti e due i sensi, perché è cruciale. Guarda la bellezza di questa cosa: i server nuovi parlano con i client vecchi, e i server vecchi parlano con i client nuovi. Nessuno crolla. Perché il significato è ancorato al numero, e un numero sconosciuto viene educatamente saltato, invece di causare un errore. È compatibilità in avanti e all'indietro, costruita dentro il formato stesso, non aggiunta dopo con fatica. Il vecchio e il nuovo coesistono per costruzione: ognuno prende ciò che capisce, e ignora con garbo ciò che non conosce, senza mai rompersi.

Voglio collegarlo a un tema che ci accompagna, perché è lo stesso principio. Questo è lo stesso principio profondo che abbiamo incontrato tante volte: evolvere aggiungendo, mai togliendo o riusando. Lo vedemmo nel linguaggio del web, che può solo crescere e mai rompere; e nelle interfacce a risorse, che affiancano il nuovo al vecchio. Qui, però, quel principio è reso meccanico, preciso, attraverso i numeri: non una buona intenzione, ma una regola dura scritta nel formato. I numeri sono la memoria che non mente: finché non li tocchi, il passato resta leggibile per sempre, e ogni versione futura può ancora capire tutte quelle venute prima.

Voglio darti l'immagine che rende chiara questa idea, perché è vivida. Pensa ai posti numerati in un teatro che viene continuamente ampliato. La regola: aggiungi solo numeri di posto nuovi, non rinumeri mai quelli vecchi. Chi ha un biglietto vecchio trova sempre il suo posto, esattamente dov'era. E chi ha un biglietto per un posto non ancora costruito viene semplicemente invitato ad aspettare, senza confusione. Nessuno viene mai mandato nel posto sbagliato, perché i numeri non mentono mai: una volta assegnato, un numero resta quello per sempre, e il teatro può crescere all'infinito senza tradire nessuno.

Voglio trarre la lezione generale, perché va oltre gRPC. La lezione è questa: il segreto per cambiare una cosa condivisa senza rompere chi la usa è rendere il cambiamento additivo e ancorato. Dai a ogni parte un'identità permanente che non si sposta mai, aggiungi soltanto, non riusare mai: e allora il vecchio e il nuovo potranno sempre capirsi, ciascuno ignorando ciò che non riconosce. È un modo di progettare per il futuro sapendo che il futuro arriverà a pezzi, non tutto in una volta, e che la cosa più gentile che puoi fare è non spostare mai il terreno sotto i piedi di chi è arrivato prima.

Per oggi ci fermiamo qui. Abbiamo visto come un contratto rigoroso riesca a evolvere senza rompere. In un grande sistema non aggiorni tutti insieme: vecchio e nuovo devono convivere e capirsi. La soluzione: ogni campo ha un numero, non riusi mai un numero e non cambi mai cosa significa, e per evolvere aggiungi campi nuovi con numeri nuovi. Il vecchio ignora ciò che non conosce, il nuovo si adatta all'assenza: funziona in entrambe le direzioni, perché il significato è ancorato al numero e l'ignoto viene saltato con garbo. È lo stesso principio di sempre, evolvere aggiungendo mai togliendo, qui reso meccanico dai numeri. Come i posti numerati di un teatro che si amplia senza mai rinumerare. La lezione: cambiare senza rompere significa cambiamento additivo e ancorato. Nella prossima puntata vediamo dove gRPC brilla, e dove no. Nelle note trovi qualche spunto. Se ti è utile, condividila. Grazie per l'ascolto, e ci sentiamo alla prossima.