Ciao, e benvenuto nella seconda puntata della quarantottesima stagione. Oggi affrontiamo lo spostamento più importante da capire nel Next moderno, e la fonte di gran parte della sua confusione: la stessa applicazione gira in due posti diversi, e tu devi sapere quale. Oggi ci facciamo la domanda centrale: dove gira questo codice? Server o client?
Partiamo dal modello classico, perché è quello che conosci. Il React di una volta gira nel browser, sul client, cioè sulla macchina dell'utente. Tutto accade lì: la pagina si costruisce sul dispositivo di chi la guarda. Next fa una cosa diversa: riporta molto del lavoro sul server, la macchina che controlli tu, vicina ai dati, prima che qualcosa arrivi al browser. E poi la mossa moderna e radicale: una sola applicazione può essere un misto. Alcuni pezzi girano solo sul server, altri solo nel browser, dentro la stessa app.
Voglio farti vedere cosa cambia in quel misto, perché è il punto. Alcuni componenti girano solo sul server: stanno vicino alla banca dati, non vengono mai spediti al browser, restano nascosti. Altri girano nel browser: sono quelli dove succedono i clic, la digitazione, l'interazione con l'utente. Così la domanda che una volta aveva una sola risposta, gira nel browser, adesso va posta a ogni singolo pezzo: e questo, dove gira? È un cambio di mentalità profondo: non stai più scrivendo un frontend che parla con un backend, due mondi separati. Stai scrivendo una sola applicazione, i cui pezzi vivono in posti diversi, e il framework li ricuce insieme attraverso la distanza.
Voglio dirti perché questo conta, perché ha conseguenze concrete. Perché è importante sapere dove gira ogni pezzo? Perché i due posti sanno fare cose diverse. I pezzi sul server possono toccare i dati direttamente, custodire segreti come le chiavi d'accesso, e non spedire nemmeno una riga di codice all'utente: sono leggeri e sicuri. I pezzi nel browser, invece, sono quelli che possono reagire all'utente, essere interattivi. Mettere la cosa giusta nel posto giusto è la nuova abilità di base. E sbagliare, come far arrivare un segreto fino al browser, dove chiunque può leggerlo, oppure aspettarsi interattività dove non c'è codice nel browser, è il nuovo errore di base.
Voglio darti l'immagine che rende chiara questa idea, perché la vivi ogni giorno. Pensa a un ristorante con una cucina e una sala. La cucina è il server: lì stanno gli ingredienti crudi, i coltelli, le ricette segrete, tutto fuori dalla vista del cliente. La sala è il browser: lì siede l'ospite, e lì avviene l'interazione, il mangiare. Certe cose devono avvenire in cucina: non consegni all'ospite un pollo crudo e un coltello. Altre devono avvenire in sala: è l'ospite a mangiare, non lo fa lo chef per lui. E un buon ristorante è chiarissimo su quale lavoro va fatto dove. La confusione tra cucina e sala è il disastro.
Voglio farti notare la distanza in mezzo, perché tornerà. E c'è una cosa da tenere a mente, che riprenderemo più avanti nella stagione. Tra la cucina e la sala, tra il server e il browser, c'è una distanza: una rete che i dati devono attraversare. Il framework la ricuce così bene che quasi te ne dimentichi. Ma quella distanza c'è, ed è la stessa che abbiamo incontrato nella stagione scorsa, parlando di come i programmi si chiamano a distanza. Tienila a mente: sembra sparire, ma non sparisce. Ci torneremo, perché è al cuore di una delle idee più sottili di questa stagione.
Voglio trarre la lezione generale, perché va oltre Next. La lezione è questa: quando un sistema si estende su due posti, la prima domanda su ogni suo pezzo è dove vive. E la chiarezza, o la confusione, di quel confine decide se l'intera cosa sarà comprensibile o un pasticcio. Un sistema in cui è sempre chiaro cosa sta di qua e cosa sta di là è un sistema che puoi tenere in testa. Uno in cui il confine è sfumato, in cui non sai mai bene dove sei, diventa un labirinto. Sapere dove vivono le cose non è un dettaglio: è la mappa senza cui ti perdi.
Per oggi ci fermiamo qui. Abbiamo affrontato lo spostamento più importante del Next moderno: la stessa app gira in due posti, e devi sapere quale. Il React di una volta girava tutto nel browser; Next riporta molto sul server, vicino ai dati, e permette a una sola app di essere un misto: alcuni pezzi solo sul server, nascosti e vicini ai dati, altri solo nel browser, dove c'è l'interazione. La domanda dove gira va posta a ogni pezzo. Non più un frontend che parla con un backend, ma una sola applicazione in posti diversi, ricucita dal framework. Come un ristorante con cucina e sala, dove è chiaro cosa va fatto dove. La lezione: quando un sistema vive in due posti, la prima domanda è dove vive ogni pezzo. Nella prossima puntata vediamo quando si costruisce la pagina. Nelle note trovi qualche spunto. Se ti è utile, condividila. Grazie per l'ascolto, e ci sentiamo alla prossima.