Imbattersi nella dicitura “Node.js” in questo periodo storico è molto frequente. Che sia in offerte di lavoro, o all’interno di un corso di informatica, è facile per un aspirante sviluppatore aver sentito parlare di Node.js.
Nato nel 2009, si tratta di un ambiente runtime che permette di eseguire codice JavaScript come un qualsiasi linguaggio di programmazione. Il linguaggio JavaScript nasce per lo sviluppo web lato client e può essere eseguito solo all’interno di un browser. Node.js, quindi, ha “trasformato” JavaScript in un linguaggio di programmazione “comune”, dotandolo di un ambiente runtime per svolgere qualsiasi tipo di compito (computazioni matematiche, videogiochi, interazioni con database locali e via discorrendo…).
Ora che sappiamo cos è Node js vediamo quali sono le best practices per effettuare un debug ottimale del codice. Al fine di effettuare un buon debug è importante sapere che non è necessario fare sempre affidamento al console.log().
Per cominciare, basterà avviare il processo di Node.js utilizzando
flag –inspect-brk.
Sul tuo browser di riferimento ora troverai un’icona di Node.js con cui potrai interagire e aprire una nuova istanza di DevTools. (Abbiamo scritto un articolo di approfondimento su DevTools, nel caso non lo conoscessi!)
Il debugging, in genere, serve per individuare errori, malfunzionamenti o output inaspettati all’interno del proprio codice JavaScript.
Il più delle volte serve a gestire le eccezioni. Per debuggare le eccezioni dovremo recarci alla scheda Sources e fare clic sul pulsante ottagonale con il simbolo della pausa. Chrome DevTools si interromperà su tutte le eccezioni non rilevate. A volte, non c’è un’eccezione precisa, ma solo uno strano comportamento che hai riscontrato su una funzione specifica.
In questo caso, puoi utilizzare l’istruzione del debugger per interrompere l’esecuzione quando raggiungi l’istruzione. Questo procedimento è utile per capire il punto preciso di esecuzione del codice o i valori delle variabili in continuo cambiamento.
Un altro elemento molto utile per effettuare il debugigging è il breakpoint. All’interno di DevTools possiamo crearlo con un semplice click con il tasto sinistro. Utile se vuoi debuggare un ciclo eseguito molte volte prima che si verifichi l’errore. Puoi fare clic con il tasto destro nel gutter e fare clic su “Add conditional breakpoint…”
Ciò richiede un’espressione da valutare e sospende il debugger solo quando l’espressione è vera. Ciò consente di saltare tutte le iterazioni tranne quella di interesse.
Inoltre, puoi davvero debuggare qualsiasi cosa grazie a Node.js e DevTool, con il comando NODE_OPTIONS=’–inspect-brk’ next dev. Ora puoi eseguire la tua app Next.js o qualsiasi altro processo node.js e si fermerà all’avvio, attendendo il debugger. In qualsiasi momento d’ora in poi potrai aprire il tuo browser DevTool e “ispezionare” il codice in qualsiasi punto.
Per comodità molti utilizzano un IDE per eseguire il debug. È concesso anche in questo caso, aprendo il debugger direttamente su VS Code. Basterà creare un file .vscode/launch.json con tutte le attività di cui desideri eseguire il debug.
Programmare in JavaScript richiede necessariamente una fase di debug, specialmente se si ha a che fare con grandi progetti e una quantità ingente di righe di codice. Puoi continuare ad utilizzare il console.log() per farlo, ma guarda anche alle altre opzioni.
Se vuoi saperne di più sulla programmazione JavaScript consulta la nostra guida Javascript in italiano per imparare meglio questo linguaggio di scripting!