Debugging med Pry: en nybegynder's Guide

mens jeg arbejdede gennem pre-bootcamp-kursusarbejdet fra Flatiron School, fandt jeg mig konstant kæmper for at kontrollere og debug returværdier inden for iterationer og indlejrede datastrukturer. Den Learn.co curriculum introducerede et værktøj kaldet Pry, men jeg havde problemer med at forstå, hvordan jeg implementerede det i min kode. Det var først i et vanskeligt laboratorium ved navn Hashketball, at tingene endelig klikkede. Efter at have kæmpet gennem laboratoriet alt for længe, tvang jeg mig endelig til at læse gennem prys dokumentation, og min evne til at skrive og debug hash-iterationer blev straks forbedret.

hvis du nogensinde finder dig selv kæmper for at opbygge et Ruby-program, kan Pry vise sig at være et uvurderligt værktøj i dit arsenal. Pry er et kraftfuldt værktøj, som Ruby-udviklere kan bruge til at debugge programmer og skubbe forbi forhindringer. Ligesom andre Ruby gems skal Pry gem være påkrævet i dine miljøindstillinger eller specifik ruby-fil for at få adgang til dens funktionalitet. Derudover er der flere Pry-plugins, herunder pry-doc og pry-byebug, der udvider perlens funktioner og muligheder. Du kan tænke på disse plugins som separate perler, der skal kræves i din gemfile.

når du har konfigureret dit program med Pry gem, er det tid til at lirke åbne din kode og opleve den glæde, der debugging med Pry. Pry er fyldt med funktioner, men de følgende eksempler fremhæver, hvad jeg mener er det mest nyttige.

REPL (Læs, Evaluer, Udskriv, Loop)

Pry kan erstatte Rubys integrerede IRB-skal og bygger på IRBS REPL-funktionalitet med nogle ekstra funktioner. Både IRB og Pry giver dig mulighed for at udføre Ruby-kommandoer i terminalen og modtage øjeblikkelige resultater i terminalen. At have REPL-funktionalitet i din terminal er et meget nyttigt værktøj, der giver dig mulighed for hurtigt at teste Ruby-kode uden at køre hele dit program. Sige, at du vil gentage over et array og se, hvilke værdier der returneres. Du kan blot indtaste arrayet, bruge en iterator på det array og kontrollere dine resultater:

Bemærk, at mens både IRB og Pry returnerede de samme værdier for denne enkle iteration, ser den måde, hvorpå Pry udskriver til terminalen, lidt anderledes ud. En af Pry ‘ s fordele i forhold til standard IRB er dens brug af syntaksfremhævning. Andre funktioner, der giver lirke kanten over IRB omfatter:

  1. afslutning af fanen

  2. Debugging værktøjer

  3. mulighed for at se dokumentation

Runtime invocation

måske er den mest nyttige funktion ved Pry dens evne til at stoppe et programs runtime i sine spor. Ruby programmør kan påberåbe sig lirke konsol under runtime ved at indsætte linjen ‘binding.pry ‘ uanset hvor de gerne vil stoppe programmet. Når tolken rammer bindingen.pry, Pry åbner en REPL-session i konsollen, så du kan teste variabler, returnere værdier, iterationer og meget mere.

følgende er et eksempel på nytten af Pry, når det kommer til at dissekere indlejrede datastrukturer i dine programmer. Jeg har for nylig bidraget til udviklingen af en dev jobsøgning CLI, der har påberåbt sig en database over jobåbninger seedet fra GitHub Jobs API. API-dataene blev struktureret i en JSON-hash, og vores databasetabeller blev seedet med værdier fra disse indlejrede hashes. Følgende billede viser, hvordan vi befolket selskabstabellen for dette projekt:

når du udfylder en databasetabel, er det vigtigt, at poster, der går ind i tabellen, oprettes med de rigtige data! Hvordan kan vi kontrollere vores iterationsværdier for at sikre, at alt fungerer som forventet? Svaret er lirke. Indsættelse af en binding.pry nær slutningen af blokken “befolke virksomheder” giver os mulighed for at undersøge returværdier ved at stoppe runtime og indtaste en REPL-session:

når bindingen.pry indsættes i blokken, koden skal udføres igen for at åbne Pry-konsollen. Når Pry-konsollen åbnes i vores terminal, er vi inden for den blok, der udfylder companies-databasetabellen, og vi er nu i stand til at teste variabler og returnere værdier:

nu hvor vi har åbnet “populate companies” – blokken, er det tid til at kontrollere nogle værdier! Når ‘ job ‘ indsættes i lirkekonsollen, udskrives en hash til en enkelt jobåbning til skærmen. Jobbet hash har flere nøgler, herunder type, url, firma, company_url, placering, titel osv. For at sikre, at de korrekte værdier sendes til databasen, kan vi indtaste følgende kommandoer i Pry-terminalen:

når vi har fastslået, at vores iteration fungerer som forventet, er bindingen.pry kan fjernes, og vores bord udfyldes ved den næste udførelse af programmet!

dokumentation og kildekodesøgning

lad os se det i øjnene, at være Udvikler betyder, at du vil stole stærkt på Google. Jeg henvender mig ofte til internettet for at undersøge Ruby-metoder og skure dokumentation for at sikre, at jeg strukturerer syntaks korrekt. Hvad hvis jeg fortalte dig, at Pry tilbyder et plugin, der giver dig mulighed for at gennemse dokumentation lige i din konsol? Velkommen til pry-doc gem. Pry-doc giver dig mulighed for at læse Ruby dokumentation inden for din nuværende Pry konsol session. Nu for et eksempel. Lad os sige, at jeg ikke kan huske, hvordan .find metode virker på en hash. Jeg kan indtaste følgende kommando i konsollen, og voil Larus! Pry-konsollen udskriver dokumentationen for denne metode i terminalen:

Hurra! Nu Kan du få adgang til nyttig dokumentation i din terminal uden at stole på Google!

nyttige Lirkekommandoer

  1. pry-åbner Pry-konsollen i din terminal

  2. bindende.pry-stopper runtime og åbner Pry console

  3. Afslut-afslutter nuværende sløjfe

  4. Afslut! – Afslutter Lirkekonsol

  5. hvorami-udskriver nuværende placering inden for programmet

  6. Vis-doc-viser dokumentation for en eller flere klassemetoder)

  7. historie-udskriver historie Pry kommandoer til terminalen

  8. LS-udskriver variabler og metoder i det aktuelle omfang af programmet

  9. hjælp-udskriver den aktuelle liste over tilgængelige Pry-kommandoer

lirke drastisk forbedret min evne til at debug Ruby programmer og er det værktøj, som jeg altid henvende sig til, når jeg sidder fast. Jeg håber, at du finder disse tips og tricks nyttige, og husk, når du er i ukrudtet, læg en binding.pry i det!



+