Debugging with Pry: a Beginner's Guide

työskennellessäni Flatiron Schoolin tarjoaman Pre-bootcamp-kurssityön läpi huomasin jatkuvasti kamppailevani tarkistaakseni ja korjatakseni palautusarvoja iteraatioissa ja sisäkkäisissä tietorakenteissa. Ja Learn.co opetussuunnitelmassa otettiin käyttöön PRY-niminen työkalu, mutta minun oli vaikea ymmärtää, miten se pitäisi toteuttaa koodissani. Vasta Hasketball-nimisessä laboratoriossa asiat loksahtivat paikoilleen. Kamppailtuani laboratorion läpi aivan liian kauan, pakotin lopulta itseni lukemaan Pryn dokumentaation läpi ja kykyni kirjoittaa ja debugata hash-iteraatioita parani välittömästi.

jos joudut joskus kamppailemaan Ruby-ohjelman kanssa, Pry voi osoittautua korvaamattomaksi työkaluksi arsenaalissasi. Pry on tehokas työkalu, jota Ruby-kehittäjät voivat käyttää ohjelmien debugointiin ja esteiden ohittamiseen. Kuten muutkin Ruby-jalokivet, Pry-jalokiveä on vaadittava ympäristöasetuksissasi tai tietyssä ruby-tiedostossa, jotta se voi käyttää sen toiminnallisuutta. Lisäksi on olemassa useita Pry-liitännäisiä, kuten pry-doc ja pry-byebug, jotka laajentavat Gemin ominaisuuksia ja ominaisuuksia. Voit ajatella näitä laajennuksia erillisinä jalokivinä, joita on vaadittava gemfileessäsi.

kun olet määrittänyt ohjelmasi Pry-jalokivellä, on aika urkkia koodisi auki ja kokea ilo, joka on vianetsintä Pry: llä. Pry on täynnä ominaisuuksia, mutta seuraavat esimerkit korostavat mielestäni hyödyllisintä.

REPL (Read, Evaluate, Print, Loop)

Pry voi korvata Rubyn integroidun IRB-kuoren ja se perustuu IRB: n REPL-toiminnallisuuteen muutamilla lisäominaisuuksilla. Sekä IRB että Pry mahdollistavat Ruby-komentojen suorittamisen päätteessä ja välittömien tulosten vastaanottamisen päätteessä. REPL-toiminnallisuus terminaalissa on erittäin hyödyllinen työkalu, jonka avulla voit nopeasti testata Ruby-koodia ajamatta koko ohjelmaa. Sanotaan esimerkiksi, että haluat iteroida yli array ja nähdä, mitä arvoja palautetaan. Voit syöttää array, käyttää iteraattori, että array, ja tarkistaa tulokset:

huomaa, että vaikka sekä IRB että Pry palauttivat samat arvot tähän yksinkertaiseen iteraatioon, Pry-tulostustapa päätteeseen näyttää hieman erilaiselta. Yksi Pry: n eduista tavalliseen IRB: hen verrattuna on sen syntaksikorostuksen käyttö. Muita ominaisuuksia, jotka antavat Pry reunan yli IRB ovat:

  1. välilehden täydennys

  2. Vianetsintätyökalut

  3. kyky tarkastella dokumentaatiota

Runtime invocation

Pry: n ehkä hyödyllisin ominaisuus on sen kyky pysäyttää ohjelman ajonaika sen raiteilla. Ruby-ohjelmoija voi käyttää PRY-konsolia ajon aikana lisäämällä rivin ’ Sidonta.tiedustele, missä he haluavat pysäyttää ohjelman. Kun tulkki osuu sidontaan.pry, Pry avaa konsolissa TOISTOSESSION, jonka avulla voit testata muuttujia, palautusarvoja, iteraatioita ja paljon muuta.

seuraava on esimerkki PRY: n hyödyllisyydestä, kun on kyse sisäkkäisten tietorakenteiden purkamisesta ohjelmissasi. Olen äskettäin ollut mukana kehittämässä dev työnhakuun CLI joka tukeutui tietokantaan avoimia työpaikkoja kylvetään GitHub Jobs API. API-tiedot oli jäsennetty JSON-hasikseen ja tietokantataulukoihimme kylvettiin arvot näistä sisäkkäisistä tiivisteistä. Seuraava kuva näyttää, miten asutimme yritykset taulukon tämän projektin:

tietokantataulukkoa kansoitettaessa on tärkeää, että taulukkoon menevät tietueet luodaan oikeilla tiedoilla! Miten voisimme tarkistaa iteraatioarvomme varmistaaksemme, että kaikki toimii odotetusti? Vastaus on urkinta. Sidonnan lisääminen.pry lähellä ”populating companies” – lohkon loppua antaa meille mahdollisuuden tutkia palautusarvoja pysäyttämällä runtime ja kirjoittamalla REPL-istuntoon:

kun Sidonta.pry lisätään lohkoon, koodi on suoritettava uudelleen, jotta Pry konsoli voidaan avata. Kun Pry-konsoli avautuu päätelaitteessamme, olemme yhtiöiden tietokantataulukon täyttämässä lohkossa ja voimme nyt testata muuttujia ja palautusarvoja:

nyt kun olemme pried avata ”populate yritykset” lohko, on aika tarkistaa joitakin arvoja! Kun ” job ” lisätään pry-konsoliin, näyttöön tulostetaan yhden työpaikan avauksen hash. Työ hash on useita avaimia kuten tyyppi, url, yritys, company_url, sijainti,otsikko, jne. Varmistaaksemme, että oikeat arvot lähetetään tietokantaan, voimme syöttää seuraavat komennot Pry-päätteeseen:

kun olemme todenneet, että iteraatiomme toimii odotetusti, sitova.pry voidaan poistaa meidän pöytä kansoittuu kun seuraava suoritus ohjelman!

dokumentointi ja lähdekoodin selaaminen

totta puhuen, kehittäjänä oleminen tarkoittaa sitä, että tulet olemaan vahvasti Googlen varassa. Käännyn usein verkon puoleen tutkiakseni Ruby-menetelmiä ja tutkin dokumentaatiota varmistaakseni, että jäsennän syntaksin oikein. Mitä jos kertoisin, että Pry tarjoaa plugin, jonka avulla voit selata asiakirjoja suoraan konsoliin? Tervetuloa pry-doc gemiin. Pry-doc mahdollistaa Ruby-dokumentaation lukemisen nykyisessä Pry-konsolin istunnossa. Nyt esimerkki. Sanotaan, etten muista miten .etsi menetelmä toimii hash. Voin syöttää seuraavan komennon konsoliin, ja voilà! Pry-konsoli tulostaa kyseisen menetelmän dokumentaation päätteeseen:

hurraa! Nyt voit käyttää hyödyllisiä asiakirjoja päätelaitteessasi turvautumatta Googleen!

hyödyllisiä Urkintakomentoja

  1. pry-avaa päätelaitteesi Pry-konsolin

  2. sitova.pry-pysäyttää ajon ja avaa Pry-konsolin

  3. exit-Exit current loop

  4. uloskäynti! – Uloskäynnit

  5. whereami-tulostaa nykyisen sijainnin ohjelmassa

  6. Näytä doc-näyttää luokan tai luokkamenetelmän asiakirjat)

  7. historia-tulostaa Pry-komentojen historian päätteeseen

  8. LS-tulostaa muuttujat ja menetelmät ohjelman nykyisessä laajuudessa

  9. ohje-tulostaa nykyisen luettelon käytettävissä olevista Pry-komennoista

Pry paransi merkittävästi kykyäni debugata Ruby-ohjelmia ja on työkalu, jonka puoleen käännyn aina, kun olen jumissa. Toivon, että pidät näitä vinkkejä ja temppuja hyödyllisinä, ja muista aina, kun olet rikkaruohoissa, laittaa sitova.urki se!



+