1 00:00:02,470 --> 00:00:08,350 Quando parliamo di debug, è importante capire cosa potrebbe andare storto e in quali situazioni potresti voler 2 00:00:08,350 --> 00:00:13,150 eseguire il debug del codice o evitare errori e la cosa più ovvia 3 00:00:13,150 --> 00:00:18,700 che può andare storto è che l'app si blocca o che stai ottenendo un messaggio 4 00:00:18,700 --> 00:00:20,760 di errore. In fase di 5 00:00:20,770 --> 00:00:28,120 sviluppo, questa è una casella rossa che si sovrappone alla tua app che abbiamo già visto in questo corso e questi messaggi di 6 00:00:28,120 --> 00:00:32,330 errore sono ovviamente un chiaro segno che qualcosa non va nel tuo codice. 7 00:00:32,650 --> 00:00:40,060 Più sottili di così sono errori logici. Nelle tue app, ad un certo punto avrai sicuramente dei 8 00:00:40,480 --> 00:00:46,540 comportamenti che potrebbero non avere senso per te o dove qualcosa semplicemente non funziona come dovrebbe funzionare. 9 00:00:46,570 --> 00:00:51,830 Non stai ricevendo un errore ma la tua app si sta comportando male, funziona 10 00:00:51,910 --> 00:00:52,680 in modo 11 00:00:52,750 --> 00:00:58,370 errato e in genere, hai qualche errore logico da qualche parte che lo sta causando. 12 00:00:58,370 --> 00:01:02,470 E, ultimo ma non meno importante, hai la tua interfaccia utente, il tuo 13 00:01:02,470 --> 00:01:06,470 stile, il tuo layout, l'esperienza utente che vuoi creare e forse è 14 00:01:06,490 --> 00:01:13,270 fuori, forse lì hai qualcosa che semplicemente non sembra o si sente come dovrebbe apparire o sentire e questo è anche qualcosa 15 00:01:13,270 --> 00:01:19,000 che può andare storto e che vuoi evitare. Ora esempi tipici di messaggi di errore o 16 00:01:19,000 --> 00:01:26,830 cause di messaggi di errore sono errori di sintassi in cui hai semplicemente un refuso nel tuo codice o dove hai dimenticato 17 00:01:26,830 --> 00:01:32,140 una parentesi graffa chiusa, qualcosa del genere ma anche semplicemente bug nel tuo codice, quindi 18 00:01:32,140 --> 00:01:37,000 ad esempio una riga di codice dove usi un valore che in realtà non 19 00:01:37,000 --> 00:01:43,990 hai mai impostato, quindi stai provando ad esempio a calcolare qualcosa con un valore indefinito o ad analizzare una stringa 20 00:01:43,990 --> 00:01:46,290 che in realtà non è 21 00:01:46,420 --> 00:01:54,030 definita, niente del genere, che in genere porta anche a errori. E poi hai un tipo speciale di errore e questi sono 22 00:01:54,060 --> 00:01:56,490 inevitabili errori come mi piace chiamarli. 23 00:01:56,520 --> 00:02:01,230 Ora ciò non significa che si tratta di errori che non puoi evitare perché non 24 00:02:01,230 --> 00:02:02,190 sei abbastanza 25 00:02:02,250 --> 00:02:08,760 bravo come sviluppatore, invece intendo errori che potrebbero derivare da te quando fai una richiesta di rete e gli utenti della 26 00:02:08,790 --> 00:02:15,570 tua app non hanno una connessione di rete o che stai scrivendo nel filesystem e in qualche modo questo accesso è bloccato, 27 00:02:15,570 --> 00:02:23,430 quindi non puoi essere sicuro che ciò non fallirà mai quando gli utenti usano la tua app perché non puoi controllare come stanno usando la 28 00:02:23,640 --> 00:02:29,580 tua app o in quali circostanze stanno usando la tua app e per tali errori, puoi anche trovare strategie 29 00:02:29,580 --> 00:02:36,030 in cui non puoi evitare l'errore ma dove puoi gestirlo. Ora, per errori logici, un tipico esempio potrebbe 30 00:02:36,040 --> 00:02:42,270 essere il comportamento delle app indesiderato o imprevisto e, naturalmente, si desidera liberarsene, il comportamento dell'utente 31 00:02:42,270 --> 00:02:49,230 imprevisto o non gestito in modo che gli utenti utilizzino l'app in un modo non intendevano usarli, quindi 32 00:02:49,230 --> 00:02:52,470 quando testate la vostra app durante lo sviluppo, 33 00:02:52,470 --> 00:02:57,480 volete essere davvero creativi e scoprire se gli utenti potrebbero entrare in punti 34 00:02:57,480 --> 00:03:05,190 dove possono procedere o dove la vostra app non funziona correttamente, quindi forse gli utenti hanno seguito una certa sequenza 35 00:03:05,190 --> 00:03:11,100 di passaggi che porta a un errore, a un errore logico, forse a un certo punto 36 00:03:11,100 --> 00:03:17,850 manca qualche input e non stai verificando che questo input sia impostato e quindi con quello non impostato, 37 00:03:18,120 --> 00:03:22,740 puoi causare un altro problema o andare in un altro errore, quindi 38 00:03:22,770 --> 00:03:24,200 qualcosa del genere. 39 00:03:24,300 --> 00:03:29,790 Ora, ultimo ma meno importante, se parliamo di stile, layout, ovviamente possiamo avere uno stile imprevisto o 40 00:03:29,790 --> 00:03:34,340 sbagliato, quindi stiamo testando l'app e vediamo che non sembra nel modo in cui 41 00:03:34,470 --> 00:03:38,220 dovrebbe o forse abbiamo solo risultati incoerenti dispositivi diversi, forse la 42 00:03:38,220 --> 00:03:44,790 nostra app ha un bell'aspetto su iOS ma non su Android o, ultimo ma non meno importante, forse abbiamo un 43 00:03:44,790 --> 00:03:49,220 layout che non funziona o si sente bene su determinati dispositivi o orientamenti. 44 00:03:49,260 --> 00:03:53,370 Forse i nostri contenuti non si adattano allo schermo su dispositivi molto piccoli, 45 00:03:53,400 --> 00:03:58,750 queste sono tutte cose che vogliamo anche escludere. Ora è quello che puoi fare il 46 00:03:58,770 --> 00:04:03,460 debug, come fai il debug? Quali strumenti ottieni per il debug degli errori? 47 00:04:03,600 --> 00:04:11,880 Ora lo strumento più ovvio che stai ricevendo e tuttavia lo strumento che molte persone trascurano o semplicemente non guardano affatto sono 48 00:04:11,880 --> 00:04:14,070 i messaggi di errore, leggi 49 00:04:14,070 --> 00:04:17,100 seriamente i messaggi di errore che stai ricevendo. 50 00:04:17,130 --> 00:04:24,850 L'ho visto così spesso nei miei corsi che gli studenti ottengono qualche errore e semplicemente vanno Oh dio, ho un errore, screenshot 51 00:04:25,170 --> 00:04:32,760 o copia e incolla nella sezione Domande e risposte e, a volte, gli errori possono essere davvero difficili da debug o 52 00:04:32,760 --> 00:04:39,180 da capire o hai bisogno di esperienza per scoprire cosa è andato storto, ma ad essere sinceri, 53 00:04:39,600 --> 00:04:46,530 spesso i messaggi di errore sono molto chiari su ciò che è andato storto o contengono persino una soluzione 54 00:04:46,530 --> 00:04:48,120 su come risolvere l'errore. 55 00:04:48,210 --> 00:04:54,090 E, ultimo ma non meno importante, semplicemente prendere un messaggio di errore e cercarlo su Google spesso ti porta molto lontano perché 56 00:04:54,090 --> 00:04:56,790 è probabile che tu non sia il primo a riceverlo. 57 00:04:57,970 --> 00:05:03,850 Ora supponiamo che non visualizzi un messaggio di errore ma la tua app non si sta comportando correttamente in 58 00:05:03,880 --> 00:05:09,670 qualche punto o non sei sicuro che un valore sia impostato correttamente in alcune parti del codice. 59 00:05:09,880 --> 00:05:15,370 Un modo molto semplice per esaminare il tuo codice, per farti un'idea dei valori con cui stai lavorando 60 00:05:15,370 --> 00:05:22,150 nel codice è usare un buon vecchio registro della console. Ora il debug dei log della console non ha la migliore reputazione 61 00:05:22,150 --> 00:05:26,090 e, in effetti, non è eccezionale se si esegue il debug di un problema 62 00:05:26,260 --> 00:05:32,470 molto complesso, ma semplicemente farsi un'idea del flusso del codice o di alcuni dei valori con cui si sta lavorando , è 63 00:05:32,470 --> 00:05:32,950 ottimo. 64 00:05:32,950 --> 00:05:38,860 Puoi semplicemente scaricarlo nel tuo codice e quindi scoprire quale valore stai utilizzando a quale punto o come 65 00:05:38,860 --> 00:05:43,840 qualcosa si comporta in una determinata situazione o se qualcosa viene eseguito affatto e 66 00:05:43,900 --> 00:05:47,260 quindi, questo è sicuramente qualcosa che dovresti anche fare. 67 00:05:47,260 --> 00:05:53,830 Ora, per problemi più complessi o se vuoi davvero scorrere il tuo codice passo dopo passo, usare il debugger e 68 00:05:53,830 --> 00:05:59,610 i punti di interruzione di Chrome è un ottimo strumento ed è supportato da React Native, sia 69 00:05:59,620 --> 00:06:05,860 quando usi expo sia quando stai non usando expo. Lì puoi davvero immergerti profondamente nel tuo codice e 70 00:06:05,860 --> 00:06:11,740 avere un'idea di come funziona, esaminarlo passo dopo passo e esaminare il tuo codice mentre viene 71 00:06:11,740 --> 00:06:12,350 eseguito. 72 00:06:13,090 --> 00:06:15,760 Quindi diamo un'occhiata a queste cose ora.