Felsökning med Pry: en nybörjare 's Guide

medan jag arbetade genom pre-bootcamp-kursen från Flatiron School, fann jag mig ständigt kämpar för att kontrollera och felsöka returvärden inom iterationer och kapslade datastrukturer. Den Learn.co curriculum introducerade ett verktyg som heter Pry, men jag hade problem med att förstå hur man implementerar det i min kod. Det var inte förrän ett svårt labb med namnet Hashketball att saker äntligen klickade. Efter att ha kämpat genom labbet för länge tvingade jag mig äntligen att läsa igenom prys dokumentation och min förmåga att skriva och felsöka hash-iterationer förbättrades omedelbart.

om du någonsin befinner dig kämpar för att bygga ut en Ruby program, kan Pry visa sig vara ett ovärderligt verktyg i din arsenal. Pry är ett kraftfullt verktyg som Ruby utvecklare kan använda för att felsöka program och driva förbi hinder. Liksom andra Ruby gems måste Pry gem krävas i dina Miljöinställningar eller specifika ruby-fil för att få tillgång till dess funktionalitet. Dessutom finns det flera Pry-plugins, inklusive pry-doc och pry-byebug, som utökar pärlens funktioner och funktioner. Du kan tänka på dessa plugins som separata pärlor som måste krävas i din gemfile.

när du har konfigurerat ditt program med Pry gem är det dags att bända upp din kod och uppleva glädjen som felsöker med Pry. Pry är full av funktioner men följande exempel belyser vad jag anser vara det mest användbara.

REPL (Läs, utvärdera, Skriv ut, Loop)

Pry kan ersätta Rubys integrerade IRB-skal och bygger på IRB: s REPL-funktionalitet med några ytterligare funktioner. Både IRB och Pry låter dig utföra Ruby-kommandon i terminalen och få omedelbara resultat i terminalen. Att ha REPL-funktionalitet i din terminal är ett mycket användbart verktyg som låter dig snabbt testa Ruby-kod utan att köra hela programmet. Låt oss till exempel säga att du vill iterera över en array och se vilka värden som returneras. Du kan helt enkelt ange arrayen, använda en iterator på den arrayen och kontrollera dina resultat:

Observera att medan både IRB och Pry returnerade samma värden för denna enkla iteration, ser det sätt som Pry skriver ut till terminalen lite annorlunda ut. En av prys fördelar jämfört med standard IRB är dess användning av syntaxmarkering. Andra funktioner som ger Pry kanten över IRB inkluderar:

  1. fliken slutförande

  2. felsökningsverktyg

  3. möjlighet att visa dokumentation

Runtime invocation

kanske den mest användbara funktionen i Pry är dess förmåga att stoppa ett program runtime i dess spår. Ruby-programmeraren kan anropa pry-konsolen under körning genom att infoga raden ’bindning.bänd ’ var de vill stoppa programmet. När tolken träffar bindningen.pry, Pry öppnar en REPL-session i konsolen, så att du kan testa variabler, returnera värden, iterationer och mer.

följande är ett exempel på nyttan av Pry när det gäller att dissekera kapslade datastrukturer i dina program. Jag har nyligen bidragit till utvecklingen av en dev jobbsökning CLI som förlitat sig på en databas med lediga jobb seedade från GitHub jobb API. API-data strukturerades i en JSON-hash och våra databastabeller såddes med värden från dessa kapslade hashar. Följande bild visar hur vi befolkade företagstabellen för detta projekt:

när du fyller i en databastabell är det viktigt att poster som går in i tabellen skapas med rätt data! Hur kan vi kontrollera våra iterationsvärden för att säkerställa att allt fungerar som förväntat? Svaret är Pry. Infoga en bindning.bänd nära slutet av blocket ”befolkande företag” tillåter oss att undersöka returvärden genom att stoppa körtiden och gå in i en REPL-session:

när bindningen.pry sätts in i blocket, koden måste köras igen för att öppna Pry-konsolen. När Pry-konsolen öppnas i vår terminal är vi inom blocket som fyller i databastabellen för företag och vi kan nu testa variabler och returnera värden:

nu när vi har öppnat” populate companies ” – blocket är det dags att kontrollera några värden! När ’jobb’ sätts in i pry-konsolen skrivs en hash för en enda jobböppning ut på skärmen. Jobbet hash har flera nycklar inklusive typ, url, företag, company_url, plats, titel, etc. För att se till att rätt värden skickas till databasen kan vi ange följande kommandon i Pry-terminalen:

när vi har bestämt att vår iteration fungerar som förväntat, bindningen.pry kan tas bort en vårt bord kommer att fylla på nästa utförande av programmet!

dokumentation och källkodsläsning

Låt oss inse det, att vara en utvecklare betyder att du kommer att lita mycket på Google. Jag vänder mig ofta till webben för att undersöka Ruby-metoder och skura dokumentation för att säkerställa att jag strukturerar syntaxen korrekt. Vad händer om jag sa till dig att Pry erbjuder ett plugin som låter dig bläddra i dokumentation direkt i din konsol? Välkommen till pry-doc gem. Pry-doc kan du läsa Ruby dokumentation inom din nuvarande Pry konsol session. Nu för ett exempel. Låt oss säga att jag inte kommer ihåg hur .hitta metod fungerar på en hash. Jag kan skriva in följande kommando i konsolen, och voil XHamster! Pry-konsolen skriver ut dokumentationen för den metoden i terminalen:

hurra! Nu kan du komma åt användbar dokumentation i din terminal utan att lita på Google!

Användbara Pry-kommandon

  1. pry-öppnar Pry-konsolen i din terminal

  2. bindande.pry-stoppar runtime och öppnar Pry console

  3. exit-avslutar nuvarande slinga

  4. avsluta! – Avslutar Pry console

  5. whereami-skriver ut aktuell plats inom programmet

  6. visa-doc – visar dokumentation för en klass eller klassmetod (er)

  7. historia-skriver historia bända kommandon till terminalen

  8. ls-skriver ut variablerna och metoderna i programmets nuvarande omfattning

  9. hjälp-skriver ut den aktuella listan över tillgängliga Pry-kommandon

Pry förbättrade drastiskt min förmåga att felsöka Ruby-program och är det verktyg som jag alltid vänder mig till när jag sitter fast. Jag hoppas att du hittar dessa tips och tricks användbara, och kom ihåg, när du är i ogräset, sätt en bindning.bänd i den!



+