‫Content de te revoir.
‫Dans cette vidéo et les prochaines vidéos, je voudrais vous montrer comment utiliser le débogage dans Visual Studio et
‫l'idée derrière le débogage est de se débarrasser des bogues.
‫Et ces bogues peuvent parfois être assez faciles à repérer car une fois que vous exécutez le programme et
‫qu'il commence à planter, vous savez, ici vous avez un bogue, mais parfois c'est un
‫bogue logique, ce qui signifie qu'il ne sera pas vraiment vu par votre ID, mais il doit être repéré par vous ou par vos utilisateurs, qui, espérons-le,
‫vous dira que vous devez l'améliorer ou vous débarrasser de ce bogue.
‫Et afin de vous montrer ou de vous démontrer la fonctionnalité de débogage dans Visual Studio, j'ai créé
‫un petit programme ici.
‫J'ai préparé un petit outil que nous utiliserons pour cela, et l'outil sera un outil de fête et un
‫outil blanc.
‫Donc l'idée est que ma fille vient d'avoir trois ans et nous avons organisé une petite fête pour elle et elle pourrait inviter
‫des amis.
‫Et bien sûr, elle aurait adoré inviter toute sa maternelle, mais nous ne lui avons permis d'inviter que
‫trois amis.
‫Alors maintenant, elle devait décider quels amis elle voulait inviter.
‫Et bien sûr, c'était facile parce qu'il y a des amis qu'elle aime plus que d'autres.
‫Mais au final, je ne sais pas qui sont ses amis préférés.
‫Donc, si je devais décider qui elle peut inviter, j'écrirais un petit programme qui dit, OK, tout le monde
‫avec un nom court et à la hauteur.
‫Oui, j'espère que dans ce cas, trois pourront être invités à la fête.
‫Alors elle nomme tous ses amis.
‫Et puis je vais juste dire, d'accord, ceux avec les noms les plus courts, les trois avec les noms les
‫plus courts seront invités.
‫Et c'est le pour entendre ce que j'ai écrit.
‫C'est exactement ce qu'il fait.
‫Nous avons donc cette liste, Frank, Joe, Michelle et Maria, Carlos et Angelina.
‫Et nous avons cette méthode d'obtention d'amis, qui nécessite une liste et le nombre de personnes qu'elle doit sélectionner
‫dans cette liste.
‫Et puis nous avons une boucle pour chaque, qui écrit simplement les noms de ces personnes ou de ces
‫enfants, dans mon cas sur la console.
‫D'accord.
‫Rien de trop chic.
‫Et l'algorithme qui décide qui est invité et qui ne l'est pas est cette méthode ici et ici, nous invitons un ami de la fête ou nous
‫découvrons qui est un ami de la fête.
‫Nous avons besoin, bien sûr, d'une liste de personnes que nous pouvons vérifier.
‫Ensuite, nous vérifions le nom le plus court et nous comparons toujours.
‫Nous passons donc en revue toutes les personnes de la liste et nous comparons toujours.
‫Le nom va-t-il être plus court qu'une longueur spécifique ou celui des autres personnes ?
‫Donc à la fin, ça va juste me donner les noms les plus courts.
‫Mais ici, j'ai intentionnellement un bug ici.
‫D'accord.
‫Je vais donc comparer plus que le nom le plus court de cette longueur.
‫Donc, dans ce cas, je vais juste obtenir tous les noms les plus longs, même si je voulais obtenir tous les
‫noms courts.
‫Ceci est juste un pack d'intention que j'ai mis en œuvre, car vous pouvez maintenant voir que c'est quelque chose que
‫vous ne remarquerez peut-être pas.
‫Bien sûr, c'est un bug logique.
‫Et si nous exécutons le code, il fonctionnera toujours.
‫Il n'y aura pas de décompte de bogues, pas d'erreur.
‫Il ne plantera pas.
‫Cela nous donnera juste les mauvais noms.
‫Mais maintenant pour nous, dans ce cas, c'est facile car on voit bien, Michelle, Angelina et Carlos sont des
‫noms longs et on connaît la liste.
‫On sait donc qu'il y avait Joe, Andy et Maria et même Frank avec des noms plus courts.
‫Mais pour une raison quelconque, ils n'étaient pas sur la liste.
‫Même si nous voulions avoir les personnes les plus courtes ou les personnes avec les noms les plus courts.
‫Je ne sais pas à quel point ils sont petits ou grands, mais cela n'a pas d'importance ici.
‫Ce qui est important, c'est qu'ici c'est facile car nous avons la liste visible ici en tant que développeur.
‫Mais que se passe-t-il si nous obtenons la liste d'ailleurs?
‫Supposons donc que nous obtenions la liste à partir d'un fichier XML, qui est énorme avec des milliers de noms, ou que nous obtenions
‫une liste sur Internet et que nous ne pouvons pas voir la liste avant qu'elle ne soit réellement traitée par notre logiciel.
‫Ainsi, nous ne verrions pas que ces noms qui nous ont été donnés ne sont en fait pas les noms les plus courts.
‫OK, mais notre logiciel a ce petit bug et maintenant c'est ce que fait la méthode différente.
‫Il reviendra juste pour raccourcir son nom.
‫Et puis nous avons ce get party friends, au pluriel, qui renvoie simplement la liste de
‫toutes les personnes avec des noms courts jusqu'à un certain montant que nous pouvons payer un laissez-passer ici.
‫Nous avons donc dépassé le numéro trois, ce qui signifie que nous n'aurions que trois amis.
‫Si nous dépassons le chiffre quatre, nous aurons quatre amis et ainsi de suite.
‫D'accord.
‫C'est donc essentiellement ce que fait notre logiciel maintenant.
‫Nous avons des voitures d'ingénieur commercial avec Frank, donc nous avons juste cette liste d'amis vide.
‫Et tant que cette liste d'amis a un nombre inférieur au nombre qui a été transmis, nous.
‫Vérifiez simplement le prochain ami de la fête, puis nous allons de l'avant et nous l'ajoutons à la liste des amis de la
‫fête et ce que nous faisons, c'est le supprimer de la liste qui nous a été transmise.
‫C'est quelque chose de très dangereux.
‫Mais nous le faisons parce que nous sommes un développeur débutant et nous faisons juste cette petite astuce où
‫nous pensons, OK, maintenant nous allons simplement nous débarrasser d'une variable ou d'un élément de la liste.
‫Et nous le faisons par programme.
‫Et puis étape par étape, nous avons une liste restreinte et il ne nous reste plus que les personnes à comparer, qui ne sont
‫pas déjà dans notre liste.
‫D'accord.
‫C'est donc ce que nous faisons avec cette liste.
‫Supprimer même si ce n'est pas une programmation propre.
‫Nous verrons également comment y remédier plus tard.
‫Mais pour l'instant, nous avons le logiciel et il fonctionne.
‫Cela fonctionne tout à fait bien.
‫Mais comment trouver comment corriger ce bogue ?
‫Car nous savons maintenant que nous avons un bug et nous pouvons, bien sûr, parcourir notre code.
‫Et dans ce cas, c'est facile car il ne s'agit que de quarante-trois lignes de code.
‫Mais imaginez que ce sont des milliers de lignes de code, de nombreux fichiers différents et de nombreuses personnes différentes ont travaillé
‫dessus.
‫Et vous ne pouvez pas comprendre quel est le bogue.
‫Maintenant, ce que vous pouvez faire, c'est utiliser les capacités de débogage de Visual Studio et pour
‫ce faire, vous pouvez simplement ajouter un point d'arrêt.
‫Maintenant, commençons par un point d'arrêt.
‫Nous avons ceci.
‫Point rouge ici sur le côté gauche, donc en général, cette barre grise que vous avez ici, c'est là que vous pouvez
‫ajouter des points d'arrêt.
‫Vous pouvez également ajouter un point d'arrêt en appuyant sur la nuit.
‫Et je ne vais pas le faire parce que neuf heures mettent mon logiciel d'enregistrement vidéo en pause.
‫Je dois donc le faire en utilisant ma souris.
‫Je vais donc au débogage, puis je peux appuyer sur basculer le point d'arrêt.
‫Ce que cela fera, c'est que cela créera ce point d'arrêt pour moi.
‫Vous pouvez aussi, bien sûr, appuyer sur F neuf.
‫Le raccourci est donc de neuf et c'est beaucoup plus facile d'utiliser des raccourcis lorsque vous déboguez plutôt que d'aller
‫déboguer et de cliquer tout le temps.
‫D'accord.
‫Habituez-vous donc à utiliser les boutons de votre clavier.
‫D'accord.
‫Alors commençons le débogage.
‫D'accord.
‫Je vais donc au débogage, puis je commence le débogage.
‫Ou je pourrais simplement appuyer sur cinq pour commencer le débogage.
‫Maintenant que nous sommes de cette petite flèche jaune, qui indique que c'est là que notre logiciel est actuellement bloqué et nous
‫l'avons fait coincé là car nous avons créé ce point d'arrêt ici.
‫Le logiciel tombe donc en panne à ce moment-là.
‫Et maintenant, nous pouvons faire avancer le logiciel à notre propre rythme afin que nous puissions aller ligne par ligne et nous pouvons même creuser plus
‫profondément.
‫Alors faisons-le.
‫Passons au-dessus de 10 ou appuyez sur ce bouton ici en haut pour franchir le pas et passer à l'étape suivante.
‫Au fait, tous ces boutons, ils ne sont disponibles que parce que je suis en mode débogage.
‫Droit?
‫J'ai donc commencé à exécuter mon logiciel.
‫Et vous pouvez également voir que le pas en avant et le pas en avant sont tous disponibles ici également.
‫Vous avez donc plusieurs façons de le faire.
‫Oui.
‫Enjambez, entrez et sortez ou appuyez sur ces boutons.
‫D'accord.
‫Donc ce que je fais maintenant, c'est que j'arrive à la ligne suivante.
‫Je suis donc passé à la ligne suivante.
‫Et vous pouvez maintenant voir que la différence est une valeur qui a sept valeurs.
‫C'est donc une liste de sept chaînes, Frank, Joe, Michelle et ainsi de suite.
‫Et zéro, nous avons Frank à l'index un avec Joe et ainsi de suite.
‫Maintenant, les amis de la fête eux-mêmes sont toujours une liste vide, même si nous lui attribuons une valeur.
‫Mais c'est parce que lorsque vous êtes à la ligne onze, la ligne dix a été exécutée. Partyline 11 n'a pas encore été exécutée.
‫Cela signifie donc que nous devons à nouveau franchir le pas pour que vous puissiez à nouveau appuyer sur F 10 pour passer à la ligne suivante et
‫à notre ligne 13.
‫Donc la ligne 12 a été sautée parce qu'il n'y a rien ici.
‫Il n'y a pas de code là-bas.
‫Et c'est juste allé à ça pour chaque boucle.
‫Mais maintenant, et si vous vouliez creuser plus profondément ?
‫Et si vous vouliez savoir ce qui s'est passé lorsque cette méthode d'obtention d'amis a été appelée ?
‫Ce que vous pouvez faire, c'est revenir en arrière en faisant glisser cette flèche vers le haut.
‫Alors je le remonte et maintenant je suis de retour à la ligne onze.
‫Et maintenant je peux au lieu d'enjamber en appuyant sur un bouton dans lequel je peux entrer en appuyant sur F
‫onze pour pouvoir appuyer sur tous les niveaux et j'entre dans la méthode get party friend, ce qui signifie que maintenant nous sommes à la ligne dix-huit,
‫ce qui signifie simplement que maintenant nous sommes à l'intérieur de l'appel de la méthode gate party friends.
‫Et ici, nous pouvons aussi y aller étape par étape.
‫Nous pouvons vérifier quels sont les amis de la fête.
‫Nous pouvons vérifier la valeur des amis du parti.
‫Vous pouvez voir le compte, le zéro.
‫C'est donc une liste vide, ce qui signifie simplement qu'il n'y a aucune entrée dans la liste.
‫Et puis nous avons cette boucle while où nous comparons des choses afin que nous puissions passer à la ligne suivante et nous pouvons
‫voir que le nombre d'amis de la fête était de zéro et comparer zéro quatre et zéro est inférieur à quatre.
‫Donc la boucle while est ou le while est vrai.
‫On peut donc passer à la ligne suivante.
‫Et ici, nous l'appelons les amis de la fête afin que nous puissions aller encore plus loin afin que nous puissions intervenir pour obtenir des amis de la fête.
‫Et vous pouvez voir maintenant que nous sommes dans cette méthode ici.
‫Donc entrer signifie entrer dans une méthode, sortir, qui est le changement.
‫Eleven saute d'une méthode.
‫Mais regardons maintenant cet appel de méthode ici.
‫Je peux voir avec un nom plus court, qui est Joe à ce stade.
‫Ensuite, nous avons ceci pour Loop et c'est parti, étape par étape cet automne.
‫Nous définissons d'abord la variable, puis nous comparons.
‫Une fois qu'une comparaison est vraie, nous allons à la boucle for ou à l'intérieur de la boucle for.
‫Ensuite, nous avons cette instruction if.
‫Nous comparons à nouveau et nous pouvons voir, semble-t-il, que la longueur trois n'est pas supérieure à la longueur ou
‫à la longueur la plus courte de trois.
‫Donc, trois n'est pas la troisième année.
‫Maintenant, la déclaration if n'était pas vraie, elle est donc passée à l'itération suivante du Falu.
‫Alors maintenant, il va exécuter la boucle for encore et encore.
‫Maintenant, vous pouvez sortir.
‫Et ce que cela fera, c'est que cela sortira de l'exécution de cette méthode et vous pourrez ensuite partir de là.
‫Mais ce que vous faites, c'est que vous n'exécutez pas la boucle for comme elle le ferait habituellement.
‫OK, donc si je sors à nouveau, j'obtiens une exception d'argument hors plage.
‫Vous devez donc faire attention ici à ne pas entrer et sortir tout le temps, mais vous devez utiliser ces outils de
‫manière inquiétante, d'accord ?
‫Et bien sûr, vous pouvez simplement exécuter à partir de là ou vous pouvez arrêter le débogage, vous pouvez redémarrer l'ensemble du processus de débogage car nous avons
‫maintenant cette petite erreur et peut-être que vous ne savez pas comment la corriger.
‫Nous pouvons donc simplement réexécuter le tout et nous pouvons maintenant, bien sûr, à nouveau, étape par étape.
‫Et nous pouvons.
‫Enjambez, enjambez, enjambez jusqu'à ce que nous soyons au point où il nous donne les noms afin que vous puissiez voir maintenant que nous
‫sommes.
‫Michelle, maintenant ça passe au nom suivant dans la liste.
‫Maintenant, le mot Angelina va au prochain nom de la liste, et c'est Carlos.
‫Vous pouvez donc voir que vous pouvez vérifier chaque variable et l'état de chaque variable à chaque instant, ce qui
‫est très important si vous voulez comprendre les choses.
‫D'accord.
‫Voilà donc l'idée générale de l'utilisation des points d'arrêt et du démarrage du processus de débogage.
‫Dans la vidéo suivante, nous allons voir comment corriger cette erreur logique en voyant mieux les variables et leurs
‫états, car maintenant je peux, bien sûr, survoler les variables et voir quelle valeur elles
‫ont à cela point précis.
‫Mais je veux comparer plusieurs variables en même temps ou voir l'état de plusieurs variables en même
‫temps.
‫Et c'est ce que nous allons vérifier dans la prochaine vidéo.
‫Alors je vous verrai là-bas.