‫Ben tornato.
‫In questo video e nei prossimi video, vorrei mostrarti come utilizzare il debug in Visual Studio e
‫l'idea alla base del debug è eliminare i bug.
‫E quei bug a volte possono essere abbastanza facili da individuare perché una volta che esegui il programma
‫e inizia a bloccarsi, sai, qui hai un bug, ma a volte è un
‫bug logico, il che significa che non sarà davvero visto dal tuo ID, ma deve essere individuato da te o dai tuoi utenti, il che
‫si spera ti dirà che devi migliorarlo o devi eliminare questo bug.
‫E per mostrarti o dimostrarti la funzionalità del debug in Visual Studio, ho creato
‫un programmino qui.
‫Ho preparato un piccolo strumento che useremo per questo, e lo strumento sarà un amico di festa e uno
‫strumento bianco.
‫Quindi l'idea è che mia figlia abbia appena compiuto tre anni e abbiamo organizzato una piccola festa per lei e lei potrebbe invitare
‫degli amici.
‫E ovviamente le sarebbe piaciuto invitare tutta la sua scuola materna, ma le abbiamo permesso di invitare solo
‫tre amici.
‫Quindi ora doveva decidere quali amici invitare.
‫E, naturalmente, è stato facile perché ci sono alcuni amici che le piacciono più di altri.
‫Ma alla fine, non so chi siano i suoi amici preferiti.
‫Quindi, se dovessi decidere chi può invitare, scriverei un programmino che dice, OK, tutti
‫con un nome breve e all'altezza.
‫Sì, spero che un numero di in questo caso, tre possano essere invitati alla festa.
‫Quindi nomina tutti i suoi amici.
‫E poi dirò, va bene, quelli con i nomi più corti, i tre con i nomi più
‫corti saranno invitati.
‫E questo è il sentire quello che ho scritto.
‫Questo è esattamente quello che fa.
‫Quindi abbiamo questa lista, Frank, Joe, Michelle e Maria, Carlos e Angelina.
‫E abbiamo questo metodo per ottenere amici in festa, che richiede un elenco e la quantità di persone che dovrebbe
‫selezionare da quell'elenco.
‫E poi abbiamo un ciclo per ogni, che scrive semplicemente i nomi di quelle persone o quei
‫bambini, nel mio caso sulla console.
‫Va bene.
‫Niente di troppo sofisticato.
‫E l'algoritmo che decide chi è invitato e chi no è questo metodo qui e qui invitiamo un amico di festa o
‫scopriamo chi è un amico di festa.
‫Abbiamo bisogno, ovviamente, di un elenco di persone che possiamo controllare.
‫Quindi controlliamo il nome più corto e confrontiamo sempre.
‫Quindi esaminiamo tutte le persone nell'elenco e confrontiamo sempre.
‫Il nome sarà più corto di una lunghezza specifica o di quello delle altre persone?
‫Quindi, alla fine, mi daranno solo i nomi più brevi.
‫Ma qui ho intenzionalmente un bug qui.
‫Va bene.
‫Quindi ho intenzione di confrontare il nome più grande del più corto con quella lunghezza.
‫Quindi, in questo caso, prenderò solo tutti i nomi più lunghi, anche se volevo ottenere tutti i nomi
‫brevi.
‫Questo è solo un pacchetto di intenti che ho implementato, perché ora puoi vedere che questo è qualcosa
‫che potresti non notare.
‫Certo, è un bug logico.
‫E se eseguiamo il codice, verrà comunque eseguito.
‫Non ci sarà alcun conteggio di bug, nessun errore.
‫Non si bloccherà.
‫Ci darà solo i nomi sbagliati.
‫Ma ora per noi, in questo caso, è facile perché vediamo OK, Michelle, Angelina e Carlos sono
‫nomi lunghi e conosciamo la lista.
‫Quindi sappiamo che c'erano Joe, Andy e Maria e persino Frank con nomi più brevi.
‫Ma per qualche motivo non erano nella lista.
‫Anche se volevamo avere le persone più basse o le persone con i nomi più corti.
‫Non so quanto siano bassi o alti, ma qui non importa.
‫L'importante è che qui sia facile perché abbiamo l'elenco visibile qui come sviluppatore.
‫Ma cosa succede se otteniamo la lista da qualche altra parte?
‫Quindi diciamo che otteniamo l'elenco da un file XML, che è enorme con migliaia di nomi, o otteniamo
‫un elenco da Internet e non possiamo vedere l'elenco prima che venga effettivamente elaborato dal nostro software.
‫Quindi non vedremmo che quei nomi che ci sono stati dati in realtà non sono i nomi più brevi.
‫OK, ma il nostro software ha questo piccolo bug e questo è ciò che fa il diverso metodo.
‫Tornerà solo per abbreviare il suo nome.
‫E poi abbiamo questo get party friends, plurale, che restituisce l'elenco di tutte
‫le persone con nomi brevi fino a un certo importo che possiamo pagare qui.
‫Quindi abbiamo superato il numero tre, il che significa che avremmo avuto solo tre amici.
‫Se abbiamo superato il numero quattro, avremo quattro amici e così via.
‫Va bene.
‫Quindi questo è fondamentalmente ciò che fa il nostro software ora.
‫Abbiamo auto da ingegnere commerciale con Frank, quindi abbiamo solo questa lista vuota di amici della festa.
‫E finché questa lista di amici della festa ha un conteggio inferiore al numero che è stato passato, noi.
‫Basta controllare il prossimo amico di gruppo, quindi andiamo avanti e lo aggiungiamo all'elenco degli amici di gruppo
‫e quello che facciamo è rimuoverlo dall'elenco che ci è stato passato.
‫Ora, è qualcosa di molto pericoloso.
‫Ma lo facciamo perché siamo uno sviluppatore principiante e facciamo solo questo piccolo trucco in
‫cui pensiamo, OK, ora ci libereremo di una variabile o di un elemento nell'elenco.
‫E lo facciamo in modo programmatico.
‫E poi, passo dopo passo, abbiamo un breve elenco e abbiamo solo le persone rimaste da confrontare, che non sono
‫già nella nostra lista.
‫Va bene.
‫Ecco cosa facciamo con questa lista.
‫Rimuovere anche se non è una programmazione pulita.
‫Vedremo come risolvere anche questo in seguito.
‫Ma per ora abbiamo il software e funziona.
‫Funziona perfettamente.
‫Ma come facciamo a capire come correggere questo bug?
‫Perché ora sappiamo di avere un bug e possiamo, ovviamente, esaminare il nostro codice.
‫E in questo caso è facile perché sono solo quarantatre righe di codice.
‫Ma immagina che siano migliaia di righe di codice, molti file diversi e molte persone diverse che ci hanno lavorato.
‫E non riesci a capire qual è il bug.
‫Ora, quello che puoi fare è usare le funzionalità di debug di Visual Studio e, per
‫farlo, puoi semplicemente aggiungere un punto di interruzione.
‫Ora, iniziamo con un punto di interruzione.
‫Abbiamo questo.
‫Punto rosso qui sul lato sinistro, quindi in generale, questa barra grigia che hai qui, è lì che puoi aggiungere
‫punti di interruzione.
‫Puoi anche aggiungere un punto di interruzione premendo di notte.
‫E non lo farò perché nove mette in pausa il mio software di registrazione video.
‫Quindi devo farlo usando il mio mouse.
‫Quindi vado al debug e quindi posso premere toggle breakpoint.
‫Quello che farà è creare questo punto di interruzione per me.
‫Puoi anche, ovviamente, premere F nove.
‫Quindi la scorciatoia è di nove ed è molto più semplice usare le scorciatoie durante il debug piuttosto che eseguire il
‫debug e fare clic tutto il tempo.
‫Va bene.
‫Quindi abituati a usare i pulsanti della tastiera.
‫Va bene.
‫Allora iniziamo il debug.
‫Va bene.
‫Quindi vado al debug e poi avvio il debug.
‫Oppure potrei semplicemente premere cinque per avviare il debug.
‫Ora che siamo di questa piccola freccia gialla, che indica che è qui che il nostro software è attualmente bloccato
‫e l'abbiamo bloccato lì perché abbiamo creato questo punto di interruzione qui.
‫Quindi il software si sta rompendo a quel punto.
‫E ora possiamo far avanzare il software al nostro ritmo in modo da poter andare riga per riga e possiamo persino scavare più a
‫fondo.
‫Quindi facciamolo.
‫Facciamo un passo oltre 10 o premiamo questo pulsante qui in alto per passare al passo successivo.
‫A proposito, tutti questi pulsanti sono disponibili solo perché sono in modalità debug.
‫Destra?
‫Così ho iniziato a eseguire il mio software.
‫E puoi anche vedere che Step in Step over e Step Out sono tutti disponibili anche qui.
‫Quindi hai diversi modi per farlo.
‫Sì.
‫Passa sopra, entra ed esci o premi quei pulsanti.
‫Va bene.
‫Quindi quello che sto facendo ora è arrivare alla riga successiva.
‫Quindi sono passato alla riga successiva.
‫E ora puoi vedere che la differenza è un valore che ha sette valori.
‫Quindi è una lista di sette corde, Frank, Joe, Michelle e così via.
‫E zero, abbiamo Frank all'indice uno con Joe e così via.
‫Ora, gli stessi amici della festa sono ancora una lista vuota, anche se gli stiamo assegnando un valore.
‫Ma questo perché quando sei nella riga undici, la riga dieci è stata eseguita. Partyline 11 non è ancora stata eseguita.
‫Quindi questo significa che dobbiamo di nuovo, passare oltre in modo da poter premere di nuovo F 10 per passare alla riga successiva e alla
‫nostra riga 13.
‫Quindi la linea 12 è stata saltata perché qui non c'è niente.
‫Non c'è nessun codice lì.
‫Ed è andato a questo per ogni ciclo.
‫Ma ora cosa succede se vuoi scavare più a fondo?
‫E se volessi sapere cosa è successo quando è stato chiamato questo metodo per ottenere amici in festa?
‫Quello che puoi fare è tornare indietro trascinando questa freccia verso l'alto.
‫Quindi lo riporto su e ora sono di nuovo alla riga undici.
‫E ora posso invece di scavalcare premendo un pulsante in cui posso entrare premendo F undici in modo
‫da poter premere ogni livello ed entrare nel metodo per ottenere amici della festa, il che significa che ora siamo in linea diciotto, il
‫che significa solo che ora siamo all'interno della chiamata al metodo degli amici del gate party.
‫E qui possiamo anche andare per gradi.
‫Possiamo controllare cosa sono gli amici della festa.
‫Possiamo controllare il valore degli amici di partito.
‫Puoi vedere il conteggio, lo zero.
‫Quindi è un elenco vuoto, il che significa solo che non ci sono voci nell'elenco.
‫E poi abbiamo questo ciclo while in cui confrontiamo le cose in modo da poter andare alla riga successiva e possiamo vedere
‫che il conteggio degli amici della festa era zero e confrontare zero quattro e zero è meno di quattro.
‫Quindi il ciclo while è o il while è vero.
‫Quindi possiamo passare alla riga successiva.
‫E qui lo chiamiamo amici della festa così possiamo andare ancora più in profondità in modo da poter entrare per avere amici della festa.
‫E puoi vedere che ora siamo in questo metodo qui.
‫Quindi entrare significa entrare in un metodo, uscire, che è il cambiamento.
‫Undici sta saltando fuori da un metodo.
‫Ma ora diamo un'occhiata a questa chiamata al metodo qui.
‫Vedo con il nome più corto, che a questo punto è Joe.
‫Quindi abbiamo questo per Loop ed eccoci qui, passo dopo passo in questo autunno.
‫Prima impostiamo la variabile, poi confrontiamo.
‫Una volta che un confronto è vero, andiamo al ciclo for o all'interno del ciclo for.
‫Quindi abbiamo questa istruzione if.
‫Confrontiamo di nuovo e possiamo vedere, come sembra, la lunghezza tre non è maggiore della lunghezza o
‫della lunghezza più corta di tre.
‫Quindi tre non è il terzo grado.
‫Ora l'istruzione if non era vera, quindi è passato alla successiva iterazione del Falu.
‫Quindi ora eseguirà il ciclo for ancora e ancora.
‫Ora puoi uscire.
‫E ciò che farà è uscire dall'esecuzione di questo metodo e quindi puoi andare da lì.
‫Ma quello che fai in questo modo è non eseguire il ciclo for come di solito farebbe.
‫OK, quindi se esco di nuovo, ricevo un argomento fuori dall'intervallo di eccezione.
‫Quindi devi stare attento a non entrare e uscire tutto il tempo, ma devi usare questi strumenti in
‫modo preoccupante, ok?
‫E puoi ovviamente, semplicemente eseguire da lì o puoi interrompere il debug, puoi riavviare l'intero processo di debug perché ora
‫abbiamo questo piccolo errore e forse non sai come risolverlo.
‫Quindi possiamo semplicemente rieseguire l'intera cosa e ora possiamo andare, ovviamente, di nuovo, passo dopo passo.
‫E possiamo.
‫Passa oltre, oltrepassa, oltrepassa fino a quando non siamo al punto in cui ci dà i nomi in modo che tu possa vedere ora che
‫siamo.
‫Michelle, ora passa al nome successivo nell'elenco.
‫Ora la parola Angelina va al nome successivo nell'elenco, ed è Carlos.
‫Quindi puoi vedere che puoi controllare ogni variabile e lo stato di ogni variabile in ogni singolo momento, il che
‫è molto importante se vuoi capire le cose.
‫Va bene.
‫Quindi questa è l'idea generale di come utilizzare i punti di interruzione e come iniziare con il processo di debug.
‫Nel prossimo video, vedremo come correggere questo errore logico vedendo le variabili e i loro stati in un
‫modo migliore, perché ora posso, ovviamente, passare il mouse sulle variabili e vedere quale valore
‫hanno a questo punto specifico.
‫Ma voglio confrontare più variabili contemporaneamente o vedere lo stato di più variabili
‫contemporaneamente.
‫Ed è quello che vedremo nel prossimo video.
‫Quindi ci vediamo lì.