La mentalità del debug
Un approccio scientifico per trovare e correggere i bug
⏱ Stima ~8 min
01 · Leggi
Il tuo codice si romperà. Il codice di ogni ingegnere si rompe. La differenza tra un principiante e un professionista non è che il professionista scrive codice senza bug — è che il professionista sa trovare e correggere i bug in modo sistematico.
Il debug non è tentativi casuali. Non è cambiare cose e sperare per il meglio. È il metodo scientifico: osserva, formula un'ipotesi, testa, concludi.
Gli ingegneri che sembrano maghi del debug non sono più intelligenti degli altri — seguono semplicemente un processo invece di andare nel panico.
💡 Immagina cosìIl debug è come fare il detective. Il crimine (il bug) è avvenuto. Tu raccogli le prove (messaggi di errore, log), formi una teoria (ipotesi), la testi (modifichi una cosa), e o risolvi il caso o formi una nuova teoria. Non arresti mai qualcuno a caso sperando per il meglio.
02 · Passo dopo passo
Il processo di debug — segui questi passi ogni volta che incontri un bug
1. RIPRODUCI
Riesci a far succedere il bug in modo consistente? Se è casuale, cerca un problema di temporizzazione o di stato. Se non riesci a riprodurlo, non puoi correggere con certezza. Annota i passi esatti che scatenano il bug.
2. ISOLA
Dove si trova esattamente il problema? Riduci l'area a un file specifico, una funzione, una riga. Usa console.log o i messaggi di errore per individuare la posizione. Più piccola è l'area che stai investigando, più veloce trovi il problema.
3. FORMULA UN'IPOTESI
Cosa pensi che lo causi? Formula una teoria prima di cambiare qualsiasi cosa. "Penso che il bug sia dovuto all'array vuoto quando accediamo all'indice 0." Avere una teoria mantiene la tua indagine focalizzata.
4. TESTA
Cambia una cosa sola per testare la tua ipotesi. Non cambiare mai più cose insieme — se cambi tre cose e il bug sparisce, non sai quale delle tre ha risolto. Questa disciplina ti farà risparmiare ore in futuro.
5. CORREGGI
Applica la correzione basata su quello che hai imparato. Una buona correzione risolve la causa radice, non solo il sintomo. Se l'app crasha con un array vuoto, non nascondere l'errore — gestisci l'array vuoto correttamente.
6. VERIFICA
Il bug originale si ripresenta ancora? Hai rotto qualcos'altro? Testa la correzione, poi testa i punti adiacenti. Una correzione che introduce un nuovo bug non è una vera correzione.
03 · Leggi
Mettiamo in pratica il processo. Hai ereditato un'app con un bug — una visitor count API. Va in crash quando l'utente chiama l'endpoint /api/stats. Il tuo compito: segui il processo di debug per trovare il bug.
04 · Pratica nel terminale
Passo 1: RIPRODUCI — leggi il log degli errori per capire cosa va storto. I messaggi di errore sono il tuo migliore amico. Di solito ti dicono esattamente cosa è successo e dove.
(Questa sezione è interattiva — attiva JavaScript per usarla.)
05 · Pratica nel terminale
Passo 2: ISOLA — l'errore indica che count è undefined alla riga 7. Quel valore viene da getVisitorCount(). Leggi il codice per trovare la funzione e vedere dove va storto.
(Questa sezione è interattiva — attiva JavaScript per usarla.)
06 · Leggi
Ecco le regole d'oro del debug che ti faranno risparmiare innumerevoli ore. Stampale e attaccale allo schermo se vuoi.
Punti chiave
- Non cambiare più cose insieme — non saprai cosa ha risolto
- Leggi i messaggi di errore — di solito ti dicono cosa è rotto e dove
- Fidati dell'errore, non delle tue supposizioni su dove si trova il bug
- Ogni ingegnere fa debug. I senior lo fanno solo in modo più sistematico.
07 · Completa
Il primo passo del debug è _____ il bug in modo consistente.
08 · Quiz
Qual è il primo passo del debug?
- Riprodurre il bug in modo consistente
- Modificare il codice e sperare per il meglio
- Chiedere a Claude di correggerlo
- Cancellare tutto e ricominciare
Altre lezioni di questo capitolo
⚠ L'esperienza interattiva completa richiede JavaScript. Attivalo e ricarica la pagina.
※ Questo è un progetto educativo indipendente — non è un prodotto ufficiale di Anthropic. Claude™ è un marchio di Anthropic, PBC.