Aujourd’hui marque la fin de la deuxième semaine de mon cours immersif en génie logiciel à l’école Flatiron. Le programme a été fortement axé sur la compréhension des fondamentaux de Ruby, notamment l’orientation des objets, les méthodes de classe, les instances de classe, le travail avec les énumérateurs, les tableaux, les hachages et les relations d’objets.
La plupart, sinon la totalité du langage ruby que j’ai écrit se trouve dans l’environnement de développement piloté par les tests (TDD). J’écris du code pour passer des tests Rspec qui ont été écrits par quelqu’un d’autre ou moi-même. La réalité qui m’est apparue à l’approche de la fin de la deuxième semaine, c’est que la disponibilité de Rspec et de messages d’erreur informatifs ne peut pas être supposée. Pour cette raison, j’ai trouvé un plaisir plus profond à écrire et à passer mes propres tests avec Pry comme acolyte.
Cette gemme de toutes les gemmes (oui, installation de gemmes nécessaire, jeu de mots également prévu) est un outil essentiel pour le débogage, les tests et juste avoir un bon vieux snoop dans votre code.
Alors, qu’est-ce que Pry?
Tout comme IRB (Ruby interactif), Pry est un type de REPL (Lire, Évaluer, Imprimer, Boucle). C’est génial car au lieu de coder via IRB, vous pouvez coder directement dans votre programme et mettre une liaison.faites levier n’importe où dans le code pour évaluer le programme.
Insertion ‘ liaison.pry ‘ dans votre code gèlera votre programme au point de son insertion. Lorsque le programme frappe pry, le programme ouvre un REPL et nous avons la possibilité de faire levier dans notre code et de voir ce qui se passe sous le capot.
Pour l’utiliser, installez d’abord Pry gem
Exécutez « gem install pry » dans votre ligne de commande.
En utilisant Pry
, j’ai créé un exemple de classe Party contenant des méthodes de classe et d’instance.
J’utilise personnellement « reliure.pry « dans deux cas courants, bien sûr, il existe de nombreuses autres situations que vous utiliseriez Pry.
Instance Un : Indiscret dans la valeur d’un argument passé dans une méthode.
Comme, je me demande ce qu’est « occasion » sur la ligne 19?
J’ai mis une « reliure.pry » en bas pour que je puisse faire levier dans cette méthode particulière. Remarque » reliure.pry » ne fonctionne pas si je le mets dans mon instruction if / else, donc le levier a été placé une fois l’instruction de condition terminée.
Maintenant, lorsque j’appelle la méthode « musique » dans mon programme et que j’exécute mon fichier dans le terminal, le REPL de levier s’ouvrira. Je peux maintenant tester pour voir quelle est la valeur de « occasion » de la ligne 19 en tapant « occasion » dans mon terminal.
Hé, c’est un « anniversaire »! Puisque nous savons que c’est un anniversaire, nous pouvons être assurés qu’une fois exécuté, cette méthode vous rendra « Joyeux anniversaire, Joyeux anniversaire ». Doux!
Instance Deux: Indiscrétion dans des méthodes énumérables
Dans l’exemple ci-dessous, la méthode de classe « all_party_types » collectera tous les types d’occasions de fête et renverra un tableau de toutes les occasions qui ont déjà été créées dans la classe Party.
Parce que pry est un outil de débogage génial, il nous permet d’examiner les valeurs de presque tout ce que nous voulons. Par exemple, qu’est-ce qu’il y a à l’intérieur » Party.tous » (ligne 31), ou « partie » (ligne 31) ou « partie.occasion » (ligne 32) ? Cela nous donne-t-il les données que nous attendons?
Si nous tapons ce dans quoi nous voulons faire levier, le REPL imprimera exactement ce que c’est. Voir , , ci-dessous. Notez que « item » et « item.occasion » ne nous montre qu’une seule instance de « Party », mais si nous appuyons sur « exit » dans la ligne de commande et relançons ces commandes, le REPL affichera l’instance suivante dans la boucle et nous montrera la valeur suivante dans le tableau.
Conseils de levier
Parce que le travail d’équipe fait rêver, voici mes quatre meilleurs conseils sur l’utilisation de levier.
- Require puis Appelez la méthode avant d’essayer de faire levier
Vous devez « require ‘pry' » en haut de votre fichier, puis appeler la méthode avant « binding.pry » fonctionnera.
2. Indiscret dans une boucle (« exit »)
Vous pouvez utiliser « exit » pour indiscret dans la valeur de retour de la boucle suivante.
Par exemple, si « Partie.all » contient un tableau de 3 instances de « party », en tapant « exit » dans votre ligne de commande, vous passerez à l’instance suivante de la boucle. Pour chaque instance de la boucle, vous pouvez accéder à la valeur « party ». Magie !
3. Forcer la sortie de la boucle (« !!! »/ » exit ! »)
Lorsque vous avez terminé de fouiner, vous pouvez frapper « !!! » ou » exit! »pour sortir complètement du levier. « sortie » sans le « ! »est également une option si vous ne vous lancez pas dans une méthode avec une boucle.
4. Réinitialiser pry(« reload-code »)
Quel est l’intérêt du débogage si vous ne pouvez pas changer votre code et tester en déplacement?
Une fois que vous avez terminé la mise à jour de votre code, vous pouvez taper « reload-code » dans votre ligne de commande. Cela réinitialisera votre session de levier avec le nouveau programme sans avoir à quitter manuellement le levier, puis à réintégrer le levier après avoir apporté des modifications à votre programme.
Donc, c’est tout de moi. Bon débogage!