Debugging with Pry: En Nybegynner' S Guide

mens jeg jobbet gjennom Pre-bootcamp-kursene fra Flatiron School, fant jeg meg hele tiden sliter med å sjekke og feilsøke returverdier innen iterasjoner og nestede datastrukturer. Den Learn.co curriculum introduserte et verktøy kalt Lirke, men jeg hadde problemer med å forstå hvordan jeg implementerte det i koden min. Det var ikke før en vanskelig lab ved navn Hashketball at ting endelig klikket. Etter å ha slitt gjennom laboratoriet altfor lenge, tvang jeg meg til å lese Gjennom Prys dokumentasjon, og min evne til å skrive og feilsøke hash-iterasjoner ble umiddelbart forbedret.

hvis du noen gang finner deg selv sliter med å bygge ut En Ruby program, Lirke kan vise seg å være et uvurderlig verktøy i ditt arsenal. Lirke er et kraftig verktøy Som Ruby utviklere kan bruke til å feilsøke programmer og presse forbi hindringer. Som andre Ruby gems, Lirke perle må kreves i miljøinnstillingene eller bestemt ruby fil for å få tilgang til funksjonaliteten. I tillegg er det flere Lirke plugins, inkludert lirke-doc og lirke-byebug, som utvider perle funksjoner og evner. Du kan tenke på disse plugins som separate perler som må kreves i gemfile.

når du har konfigurert programmet med Lirke perle, er det på tide å lirke åpne koden og oppleve gleden som er debugging Med Lirke. Lirke er pakket full av funksjoner, men følgende eksempler markere hva jeg mener er den mest nyttige.

REPL(Lese, Evaluere, Print, Loop)

Lirke kan erstatte Ruby integrert IRB shell og bygger PÅ IRB REPL funksjonalitet med noen ekstra funksjoner. BÅDE IRB og Pry lar deg utføre Ruby-kommandoer i terminalen og motta umiddelbare resultater i terminalen. Å ha REPL funksjonalitet i terminalen er et svært nyttig verktøy som lar deg raskt teste Ruby kode uten å kjøre hele programmet. La oss for eksempel si at du vil iterere over en matrise og se hvilke verdier som returneres. Du kan bare gå inn i matrisen, bruke en iterator på den matrisen, og sjekk resultatene dine:

Legg merke til at MENS BÅDE IRB og Lirke returnert de samme verdiene for denne enkle iterasjon, måten Lirke utskrifter til terminalen ser litt annerledes. En av Prys fordeler over standard IRB er bruken av syntaksutheving. Andre funksjoner som gir Lirke kanten OVER IRB inkluderer:

  1. tab fullføring

  2. Debugging verktøy

  3. Evne til å vise dokumentasjon

Runtime invocation

kanskje den mest nyttige funksjonen Av Lirke er dens evne stoppe et program runtime i sitt spor. Ruby programmerer kan påberope lirke konsollen under kjøring ved å sette inn linjen ‘ binding.lirke ‘ hvor de ønsker å stoppe programmet. Når tolken treffer bindingen.lirke, Lirke vil åpne EN REPL økt i konsollen, slik at du kan teste variabler, returverdier, gjentakelser, og mer.

følgende er et eksempel på nytten Av Lirke når det gjelder å dissekere nestede datastrukturer i programmene dine. Jeg har nylig bidratt til utviklingen av en dev job search CLI som stod på en database med jobbåpninger frøet fra GitHub Jobs API. API-dataene ble strukturert I EN JSON-hash, og våre databasetabeller ble sådd med verdier fra disse nestede hashene. Følgende bilde viser hvordan vi befolket tabellen selskaper for dette prosjektet:

Når du fyller en databasetabell, er det viktig at poster som går inn i tabellen, opprettes med de riktige dataene! Hvordan kan vi sjekke våre iterasjonsverdier for å sikre at alt fungerer som forventet? Svaret er Lirke. Sette inn en binding.lirke nær slutten av» fyller selskaper » blokk lar oss undersøke returverdier ved å stoppe runtime og inn i EN REPL økt:

når bindingen.pry er satt inn i blokken, koden må utføres igjen for å åpne Pry-konsollen. Når Lirke konsollen åpnes i vår terminal, vi er innenfor blokken som fyller selskaper database tabellen, og vi er nå i stand til å teste variabler og returverdier:

Nå som vi har pried åpne» populate companies » – blokken, er det på tide å sjekke noen verdier! Når ‘jobb’ settes inn i lirke konsollen, en hash for en enkelt jobb åpning skrives ut på skjermen. Jobben hash har flere nøkler, inkludert type, url, firma, company_url, plassering, tittel, etc. For å sikre at de riktige verdiene blir sendt til databasen, kan vi skrive inn følgende kommandoer i Lirke terminal:

Når vi har bestemt at vår iterasjon fungerer som forventet, er bindingen.lirke kan fjernes en vårt bord vil fylle ved neste gjennomføring av programmet!

Dokumentasjon og kildekode surfing

La oss innse det, å være en utvikler betyr at Du vil stole tungt På Google. Jeg vender meg ofte til nettet for å undersøke Ruby-metoder og skure dokumentasjon for å sikre at jeg strukturerer syntaks riktig. Hva om Jeg fortalte deg At Lirke tilbyr et plugin som lar deg bla gjennom dokumentasjon rett i konsollen din? Velkommen til lirke-doc gem. Lirke-doc lar deg lese Ruby dokumentasjon innenfor din nåværende Lirke konsoll økt. Nå for et eksempel. La oss si at jeg ikke kan huske hvordan .finn metoden fungerer på en hash. Jeg kan legge inn følgende kommando i konsollen, og voilà! Lirke konsollen skriver ut dokumentasjonen for denne metoden i terminalen:

Hurra! Nå kan du få tilgang til nyttig dokumentasjon i terminalen uten å stole På Google!

Nyttige Lirke Kommandoer

  1. lirke-Åpner Lirke konsollen i terminalen

  2. bindende.lirke-Stopper kjøretid og åpner Lirke konsoll

  3. exit-Avslutter gjeldende loop

  4. avslutt! – Avslutter Lirke konsoll

  5. whereami-Skriver ut gjeldende plassering i programmet

  6. show-doc-Viser dokumentasjon for en klasse eller klasse metode (er)

  7. historie-Skriver historie Lirke kommandoer til terminalen

  8. Ls-Skriver ut variablene og metodene i dagens omfang av programmet

  9. help-Skriver ut gjeldende liste over tilgjengelige Lirke kommandoer

Lirke drastisk forbedret min evne til å feilsøke Ruby programmer og er verktøyet som jeg alltid slå til når jeg sitter fast. Jeg håper at du finner disse tipsene og triksene nyttige, og husk, når du er i ugresset, legg en binding.lirke i det!



+