Debugging mit Pry: A Beginner's Guide

Während ich die von der Flatiron School bereitgestellten Pre-Bootcamp-Kurse durcharbeitete, hatte ich ständig Probleme, Rückgabewerte in Iterationen und verschachtelten Datenstrukturen zu überprüfen und zu debuggen. Die Learn.co ich habe ein Tool namens Pry eingeführt, aber ich hatte Probleme zu verstehen, wie ich es in meinem Code implementieren kann. Erst in einem schwierigen Labor namens Hashketball klickten die Dinge endlich. Nachdem ich mich viel zu lange durch das Labor gekämpft hatte, zwang ich mich schließlich, Prys Dokumentation durchzulesen, und meine Fähigkeit, Hash-Iterationen zu schreiben und zu debuggen, verbesserte sich sofort.

Wenn Sie jemals Schwierigkeiten haben, ein Ruby-Programm aufzubauen, könnte sich Pry als unschätzbares Werkzeug in Ihrem Arsenal erweisen. Pry ist ein leistungsstarkes Tool, mit dem Ruby-Entwickler Programme debuggen und Hürden überwinden können. Wie andere Ruby-Edelsteine muss das Pry-Juwel in Ihren Umgebungseinstellungen oder in einer bestimmten Ruby-Datei erforderlich sein, um auf seine Funktionalität zugreifen zu können. Darüber hinaus gibt es mehrere Pry-Plugins, einschließlich pry-doc und pry-byebug, die die Funktionen und Fähigkeiten des Edelsteins erweitern. Sie können sich diese Plugins als separate Edelsteine vorstellen, die in Ihrer gemfile benötigt werden müssen.

Sobald Sie Ihr Programm mit dem Pry-Juwel konfiguriert haben, ist es Zeit, Ihren Code zu öffnen und die Freude am Debuggen mit Pry zu erleben. Pry ist vollgepackt mit Funktionen, aber die folgenden Beispiele zeigen, was ich für das nützlichste halte.

REPL (Lesen, Auswerten, Drucken, Schleife)

Pry kann Rubys integrierte IRB-Shell ersetzen und baut auf der REPL-Funktionalität von IRB mit einigen zusätzlichen Funktionen auf. Sowohl IRB als auch Pry ermöglichen es Ihnen, Ruby-Befehle im Terminal auszuführen und sofortige Ergebnisse im Terminal zu erhalten. Die REPL-Funktionalität in Ihrem Terminal ist ein sehr nützliches Tool, mit dem Sie Ruby-Code schnell testen können, ohne Ihr gesamtes Programm ausführen zu müssen. Angenommen, Sie möchten über ein Array iterieren und sehen, welche Werte zurückgegeben werden. Sie können einfach das Array eingeben, einen Iterator für dieses Array verwenden und Ihre Ergebnisse überprüfen:

Beachten Sie, dass sowohl IRB als auch Pry für diese einfache Iteration dieselben Werte zurückgegeben haben, die Art und Weise, wie Pry auf das Terminal druckt, jedoch etwas anders aussieht. Einer der Vorteile von Pry gegenüber dem Standard-IRB ist die Verwendung der Syntaxhervorhebung. Weitere Funktionen, die Pry den Vorteil gegenüber IRB geben, sind:

  1. Tab-Vervollständigung

  2. Debugging-Werkzeuge

  3. Möglichkeit zum Anzeigen der Dokumentation

Laufzeitaufruf

Die vielleicht nützlichste Funktion von Pry ist die Fähigkeit, die Laufzeit eines Programms in seinen Spuren zu stoppen. Der Ruby-Programmierer kann die Pry-Konsole zur Laufzeit aufrufen, indem er die Zeile ‚binding .pry‘ wo immer sie möchten, um das Programm zu stoppen. Wenn der Interpreter die Bindung trifft.pry, Pry öffnet eine REPL-Sitzung in der Konsole, in der Sie Variablen, Rückgabewerte, Iterationen und mehr testen können.

Das Folgende ist ein Beispiel für die Nützlichkeit von Pry, wenn es darum geht, verschachtelte Datenstrukturen in Ihren Programmen zu zerlegen. Ich habe kürzlich zur Entwicklung einer Dev Job Search CLI beigetragen, die sich auf eine Datenbank mit Stellenangeboten stützte, die von der GitHub Jobs API ausgesät wurden. Die API-Daten wurden in einem JSON-Hash strukturiert und unsere Datenbanktabellen wurden mit Werten aus diesen verschachtelten Hashes ausgesät. Das folgende Bild zeigt, wie wir die companies-Tabelle für dieses Projekt ausgefüllt haben:

Beim Auffüllen einer Datenbanktabelle ist es wichtig, dass Datensätze, die in die Tabelle eingehen, mit den richtigen Daten erstellt werden! Wie können wir unsere Iterationswerte überprüfen, um sicherzustellen, dass alles wie erwartet funktioniert? Die Antwort ist Pry. Einfügen einer Bindung.mit pry gegen Ende des Blocks „Unternehmen auffüllen“ können wir Rückgabewerte untersuchen, indem wir die Laufzeit stoppen und eine REPL-Sitzung eingeben:

Sobald die Bindung.pry wird in den Block eingefügt, der Code muss erneut ausgeführt werden, um die Pry-Konsole zu öffnen. Wenn die Pry-Konsole in unserem Terminal geöffnet wird, befinden wir uns in dem Block, der die Companies-Datenbanktabelle füllt, und können jetzt Variablen testen und Werte zurückgeben:

Nachdem wir den Block „Unternehmen füllen“ geöffnet haben, ist es Zeit, einige Werte zu überprüfen! Wenn ‚job‘ in die Pry-Konsole eingefügt wird, wird ein Hash für eine einzelne Joböffnung auf den Bildschirm gedruckt. Der Job-Hash hat mehrere Schlüssel, einschließlich Typ, URL, Firma, company_url, Ort, Titel usw. Um sicherzustellen, dass die richtigen Werte an die Datenbank gesendet werden, können wir die folgenden Befehle in das Pry-Terminal eingeben:

Sobald wir festgestellt haben, dass unsere Iteration wie erwartet funktioniert, wird die Bindung.pry kann entfernt werden und unsere Tabelle wird bei der nächsten Ausführung des Programms gefüllt!

Durchsuchen von Dokumentation und Quellcode

Seien wir ehrlich, als Entwickler werden Sie sich stark auf Google verlassen. Ich wende mich oft dem Web zu, um nach Ruby-Methoden zu suchen und die Dokumentation zu durchsuchen, um sicherzustellen, dass ich die Syntax korrekt strukturiere. Was wäre, wenn ich Ihnen sagen würde, dass Pry ein Plugin anbietet, mit dem Sie die Dokumentation direkt in Ihrer Konsole durchsuchen können? Willkommen zum Wörterbuch pry-doc. Mit Pry-doc können Sie die Ruby-Dokumentation in Ihrer aktuellen Pry-Konsolensitzung lesen. Nun zu einem Beispiel. Sagen wir, ich kann mich nicht erinnern, wie die .find Methode funktioniert auf einem Hash. Ich kann den folgenden Befehl in die Konsole eingeben und voilà! Die Pry-Konsole druckt die Dokumentation für diese Methode im Terminal:

Hurra! Jetzt können Sie auf nützliche Dokumentation in Ihrem Terminal zugreifen, ohne auf Google angewiesen zu sein!

Nützliche Hebelbefehle

  1. pry – Öffnet die Pry-Konsole in Ihrem Terminal

  2. verbindlich.pry – Stoppt die Laufzeit und öffnet die Pry-Konsole

  3. exit – Beendet die Stromschleife

  4. raus! -Exits hebeln Konsole

  5. whereami – Gibt den aktuellen Standort innerhalb des Programms aus

  6. show-doc – Zeigt die Dokumentation für eine Klasse oder Klassenmethode(n) an)

  7. verlauf – Gibt den Verlauf der Hebelbefehle an das Terminal aus

  8. ls -Druckt die Variablen und Methoden im aktuellen Bereich des Programms

  9. hilfe – Druckt die aktuelle Liste der verfügbaren Hebelbefehle

Pry hat meine Fähigkeit, Ruby-Programme zu debuggen, drastisch verbessert und ist das Tool, an das ich mich immer wende, wenn ich nicht weiterkomme. Ich hoffe, dass Sie diese Tipps und Tricks nützlich finden, und denken Sie daran, wann immer Sie im Unkraut sind, legen Sie eine Bindung.stechen Sie rein!



+