Débogage avec Pry: Guide d’un débutant '

Tout en travaillant sur les cours de pré-bootcamp fournis par Flatiron School, je me suis constamment retrouvé à avoir du mal à vérifier et à déboguer les valeurs de retour dans les itérations et les structures de données imbriquées. Le Learn.co curriculum a introduit un outil appelé Pry, mais j’ai eu du mal à comprendre comment l’implémenter dans mon code. Ce n’est qu’après un laboratoire difficile du nom de Hashketball que les choses ont finalement cliqué. Après avoir lutté pendant trop longtemps dans le laboratoire, je me suis finalement forcé à lire la documentation de Pry et ma capacité à écrire et à déboguer des itérations de hachage s’est immédiatement améliorée.

Si jamais vous avez du mal à créer un programme Ruby, Pry pourrait s’avérer un outil inestimable dans votre arsenal. Pry est un outil puissant que les développeurs Ruby peuvent utiliser pour déboguer des programmes et dépasser les obstacles. Comme les autres gemmes Ruby, la gemme Pry doit être requise dans vos paramètres d’environnement ou dans un fichier ruby spécifique pour accéder à ses fonctionnalités. De plus, il existe plusieurs plugins Pry, y compris pry-doc et pry-byebug, qui étendent les fonctionnalités et les capacités de la gemme. Vous pouvez considérer ces plugins comme des gemmes distinctes qui doivent être requises dans votre fichier gemme.

Une fois que vous avez configuré votre programme avec la gemme Pry, il est temps d’ouvrir votre code et de ressentir la joie du débogage avec Pry. Pry regorge de fonctionnalités, mais les exemples suivants mettent en évidence ce que je crois être le plus utile.

REPL (Lire, Évaluer, Imprimer, Boucler)

Pry peut remplacer le shell IRB intégré de Ruby et s’appuie sur la fonctionnalité REPL d’IRB avec quelques fonctionnalités supplémentaires. IRB et Pry vous permettent d’exécuter des commandes Ruby dans le terminal et de recevoir des résultats immédiats dans le terminal. Avoir la fonctionnalité REPL dans votre terminal est un outil très utile qui vous permet de tester rapidement du code Ruby sans exécuter l’ensemble de votre programme. Disons, par exemple, que vous souhaitez parcourir un tableau et voir quelles valeurs sont renvoyées. Vous pouvez simplement entrer le tableau, utiliser un itérateur sur ce tableau et vérifier vos résultats:

Notez que même si IRB et Pry ont renvoyé les mêmes valeurs pour cette itération simple, la façon dont Pry imprime sur le terminal semble un peu différente. L’un des avantages de Pry par rapport à l’IRB standard est son utilisation de la coloration syntaxique. Les autres caractéristiques qui donnent à Pry l’avantage sur IRB incluent:

  1. Achèvement de l’onglet

  2. Outils de débogage

  3. Possibilité d’afficher la documentation

Appel d’exécution

La caractéristique la plus utile de Pry est peut-être sa capacité à arrêter l’exécution d’un programme dans ses traces. Le programmeur Ruby peut appeler la console pry pendant l’exécution en insérant la liaison de ligne.poussez partout où ils voudraient arrêter le programme. Lorsque l’interpréteur frappe la liaison.pry, Pry ouvrira une session REPL dans la console, vous permettant de tester des variables, des valeurs de retour, des itérations, etc.

Voici un exemple de l’utilité de Pry lorsqu’il s’agit de disséquer des structures de données imbriquées dans vos programmes. J’ai récemment contribué au développement d’une CLI de recherche d’emploi dev qui s’appuyait sur une base de données d’offres d’emploi issues de l’API Jobs de GitHub. Les données de l’API ont été structurées dans un hachage JSON et nos tables de base de données ont été ensemencées avec des valeurs de ces hachages imbriqués. L’image suivante montre comment nous avons rempli le tableau des entreprises pour ce projet:

Lors du remplissage d’une table de base de données, il est essentiel que les enregistrements entrant dans la table soient créés avec les données correctes! Comment pourrions-nous vérifier nos valeurs d’itération pour nous assurer que tout fonctionne comme prévu? La réponse est Levier. Insertion d’une reliure.pry près de la fin du bloc « sociétés de remplissage » nous permet d’étudier les valeurs de retour en arrêtant l’exécution et en entrant une session REPL:

Une fois la liaison.pry est inséré dans le bloc, le code doit être exécuté à nouveau pour ouvrir la console Pry. Lorsque la console Pry s’ouvre dans notre terminal, nous sommes dans le bloc qui remplit la table de base de données companies et nous sommes maintenant en mesure de tester des variables et de renvoyer des valeurs:

Maintenant que nous avons ouvert le bloc « peupler les entreprises », il est temps de vérifier certaines valeurs! Lorsque « job » est inséré dans la console de levier, un hachage pour une seule ouverture de travail est imprimé à l’écran. Le hachage du travail a plusieurs clés, y compris le type, l’url, la société, company_url, l’emplacement, le titre, etc. Pour nous assurer que les valeurs correctes sont envoyées à la base de données, nous pouvons entrer les commandes suivantes dans le terminal de levier:

Une fois que nous avons déterminé que notre itération fonctionne comme prévu, la liaison.pry peut être supprimé et notre table se remplira lors de la prochaine exécution du programme!

Navigation dans la documentation et le code source

Avouons-le, être développeur signifie que vous comptez beaucoup sur Google. Je me tourne souvent vers le Web pour rechercher des méthodes Ruby et parcourir la documentation pour m’assurer que je structure correctement la syntaxe. Et si je vous disais que Pry propose un plugin qui vous permet de parcourir la documentation directement dans votre console? Bienvenue sur la gemme pry-doc. Pry-doc vous permet de lire la documentation Ruby dans votre session de console Pry actuelle. Maintenant, pour un exemple. Disons que je ne me souviens pas comment le.la méthode find fonctionne sur un hachage. Je peux entrer la commande suivante dans la console, et voilà ! La console Pry imprime la documentation de cette méthode dans le terminal:

Hourra! Vous pouvez désormais accéder à une documentation utile dans votre terminal sans compter sur Google !

Commandes de levier utiles

  1. pry – Ouvre la console Pry dans votre terminal

  2. reliure.pry – Arrête l’exécution et ouvre la console Pry

  3. exit – Quitte la boucle de courant

  4. sortez! – Sort de la console de levier

  5. whereami – Imprime l’emplacement actuel dans le programme

  6. show-doc – Affiche la documentation d’une classe ou d’une ou de plusieurs méthodes de classe)

  7. historique – Affiche l’historique des commandes de levier sur le terminal

  8. ls – Imprime les variables et les méthodes dans la portée actuelle du programme

  9. aide – Affiche la liste actuelle des commandes de levier disponibles

Pry a considérablement amélioré ma capacité à déboguer les programmes Ruby et est l’outil vers lequel je me tourne toujours lorsque je suis bloqué. J’espère que vous trouverez ces trucs et astuces utiles, et rappelez-vous, chaque fois que vous êtes dans les mauvaises herbes, mettez une reliure.faites levier!



+