Ciao, e benvenuto nella settima puntata di questo podcast. Nella scorsa abbiamo parlato delle fondamenta che nessun linguaggio ti insegna. Oggi ne prendo una che è così trascurata da meritare una puntata tutta sua: saper leggere il codice scritto da altri. Nessuno te la insegna, quasi nessuno la allena di proposito, eppure è una delle cose che farai di più in tutta la tua vita da sviluppatore.
Comincio con un dato che spiazza chi è alle prime armi. Nel lavoro vero, uno sviluppatore passa molto più tempo a leggere codice che a scriverne. Il codice si scrive una volta, ma si legge decine di volte: quando lo modifichi, quando cerchi un errore, quando ti unisci a un progetto già avviato, quando riprendi in mano una cosa tua di sei mesi fa. Se impari solo a scrivere e mai a leggere, ti stai preparando alla metà sbagliata del mestiere.
Perché leggere il codice degli altri è difficile? Perché quel codice non segue il tuo modo di pensare. Ognuno organizza le idee a modo suo, dà nomi diversi, prende strade diverse. E poi manca il contesto: tu vedi il risultato, ma non vedi le decisioni, i vincoli e la storia che l'hanno prodotto. A volte il codice è scritto male davvero; ma molto più spesso è solo scritto in modo diverso da come lo avresti fatto tu, e questo lo confondi con lo sbagliato.
E qui il primo cambio di mentalità, il più importante: leggere codice non è giudicarlo, è capirlo. La tentazione, davanti al codice altrui, è dire subito "questo è brutto, io l'avrei fatto meglio". Fermati. Prima capisci perché è fatto così. Nove volte su dieci, dietro una scelta che ti sembra assurda c'è un motivo che non vedi: un vincolo, un caso particolare, una fretta. L'umiltà, qui, non è buona educazione: è efficienza.
Passiamo alla pratica. Come si legge, concretamente, un pezzo di codice che non conosci? La prima regola: non partire dalla prima riga e andare avanti come un romanzo. Parti dall'alto, dalla mappa. Cerca il punto d'ingresso, il punto da cui tutto comincia, e fatti un'idea generale della struttura prima di tuffarti nei dettagli. Prima la forma del bosco, poi i singoli alberi.
Seconda regola: segui un filo, non leggere tutto. Scegli una cosa precisa, per esempio cosa succede quando l'utente preme quel pulsante, e segui solo quel percorso attraverso il codice, saltando tutto il resto. È molto più efficace che tentare di leggere ogni riga. Nessuno legge un intero programma dall'inizio alla fine: si seguono percorsi, uno alla volta.
Terza regola: non devi capire ogni riga per capire cosa fa un blocco. Puoi zoomare avanti e indietro. A volte ti basta sapere che una certa parte prende questi dati e restituisce quello, senza entrare in come lo fa. Entri nel dettaglio solo dove serve davvero. Questa capacità di stare al livello giusto è ciò che distingue chi legge in fretta da chi si perde.
E poi usa gli strumenti, non solo gli occhi. Cerca dove una funzione è definita e dove viene usata. Esegui il codice e guardalo muoversi. Aggiungi qualche stampa per vedere i valori reali che ci passano dentro. Impara a usare gli strumenti di debug per fermare il programma e ispezionarlo. E se il progetto ha dei test, leggili: i test raccontano cosa il codice dovrebbe fare, spesso meglio di qualsiasi commento.
C'è un effetto collaterale bellissimo in tutto questo: leggere codice ti rende uno scrittore di codice migliore. Come i bravi scrittori sono sempre stati grandi lettori, i bravi programmatori leggono tanto codice altrui. Assorbi soluzioni, schemi ricorrenti, modi eleganti di risolvere cose che tu affronteresti in modo goffo. Ogni volta che leggi codice migliore del tuo, rubi qualcosa. Ed è un furto lecito, anzi consigliato.
Dove allenarsi, allora? I progetti open source sono una palestra gratuita e infinita: scegline uno che usi e curiosane dentro. Il codice della tua azienda o del tuo team, quando ci arrivi, è l'allenamento più prezioso. E in generale, cerca di leggere codice scritto da persone più brave di te: è lì che si impara di più. Comincia da un pezzo piccolo, non dall'intero progetto, altrimenti ti scoraggi subito.
Per oggi ci fermiamo qui. Saper leggere il codice degli altri con metodo, partendo dalla mappa, seguendo un filo, restando al livello giusto, usando gli strumenti e con un po' di umiltà, è, senza esagerare, metà del mestiere. È una competenza silenziosa, che nessuno applaude, ma che ti fa diventare utile in fretta ovunque tu vada. Allenala di proposito. Nelle note trovi qualche spunto. Se la puntata ti è piaciuta, condividila. Grazie per l'ascolto, e ci sentiamo alla prossima.