Debugging with Pry: a Beginner' s Guide

miközben a Flatiron School által biztosított pre-bootcamp tanfolyamon dolgoztam, folyamatosan küzdöttem a visszatérési értékek ellenőrzésével és hibakeresésével az iterációkon és a beágyazott adatstruktúrákon belül. Az Learn.co a tanterv bevezette a Pry nevű eszközt, de nehezen tudtam megérteni, hogyan kell végrehajtani a kódomban. Nem volt, amíg egy nehéz laborban a neve Hashetball, hogy a dolgok végül kattintott. Miután túl sokáig küzdöttem a laborban, végül arra kényszerítettem magam, hogy elolvassam Pry dokumentációját, és a hash iterációk írására és hibakeresésére való képességem azonnal javult.

ha valaha is találja magát küzd, hogy építsenek ki egy Ruby programot, Pry bizonyítani tudja, hogy felbecsülhetetlen eszköz az arzenál. A Pry egy hatékony eszköz, amelyet a Ruby fejlesztői használhatnak a programok hibakeresésére és az akadályok elhárítására. A többi Ruby drágakőhöz hasonlóan a Pry gem-et is meg kell követelni a környezeti beállításokban vagy az adott ruby fájlban annak funkcionalitásának elérése érdekében. Ezenkívül számos Pry plugin létezik, köztük a pry-doc és a pry-byebug, amelyek kibővítik a gem funkcióit és képességeit. Ezeket a bővítményeket külön drágaköveknek tekintheti, amelyeket meg kell követelni a gemfile-ben.

Miután konfigurálta a programot a Pry gem segítségével, Itt az ideje, hogy megnyissa a kódot, és megtapasztalja a Pry hibakeresésének örömét. A Pry tele van funkciókkal, de a következő példák kiemelik azt, amit a leghasznosabbnak tartok.

REPL (Read, Evaluate, Print, Loop)

a Pry helyettesítheti a Ruby integrált IRB shell-jét, és az IRB REPL funkcióira épít néhány további funkcióval. Mind az IRB, mind a Pry lehetővé teszi a Ruby parancsok végrehajtását a terminálon, és azonnali eredményeket kap a terminálon. A REPL funkcionalitás a terminálon nagyon hasznos eszköz, amely lehetővé teszi a Ruby kód gyors tesztelését a teljes program futtatása nélkül. Tegyük fel például, hogy egy tömb felett szeretne iterálni, és látni, hogy milyen értékeket ad vissza. Egyszerűen beírhatja a tömböt, használhat egy iterátort a tömbön, és ellenőrizheti az eredményeket:

figyeljük meg, hogy míg mind az IRB, mind a Pry ugyanazokat az értékeket adta vissza ehhez az egyszerű iterációhoz, a Pry nyomtatásának módja a terminálra kissé másképp néz ki. Pry egyik előnye a szokásos IRB-vel szemben a szintaxis kiemelés. Egyéb funkciók, amelyek az IRB-vel szemben előnyt nyújtanak, a következők:

  1. Tab befejezése

  2. hibakeresési eszközök

  3. képes megtekinteni dokumentáció

Runtime invocation

a Pry talán leghasznosabb tulajdonsága, hogy képes megállítani a program futási idejét a pályáin. A Ruby programozó futásidőben meghívhatja a pry konzolt a sor beillesztésével ‘ kötés.kíváncsiskodnak, ahol le akarják állítani a programot. Amikor a tolmács eléri a kötést.pry, Pry megnyit egy REPL munkamenetet a konzolban, amely lehetővé teszi változók, visszatérési értékek, iterációk stb.

az alábbiakban bemutatunk egy példát a Pry hasznosságára, amikor a beágyazott adatstruktúrákat boncolgatja a programokban. Nemrégiben hozzájárultam egy dev álláskeresési CLI fejlesztéséhez, amely a GitHub Jobs API-ból kiemelt álláslehetőségek adatbázisára támaszkodott. Az API-adatokat JSON hash-ban strukturáltuk, az adatbázis-tábláinkat pedig ezekből a beágyazott hash-okból származó értékekkel vetettük be. A következő kép azt mutatja, hogyan töltöttük be a vállalatok táblázatot ehhez a projekthez:

adatbázis-tábla feltöltésekor létfontosságú, hogy a táblába kerülő rekordok a megfelelő adatokkal legyenek létrehozva! Hogyan ellenőrizhetjük az iterációs értékeinket annak biztosítása érdekében, hogy minden a várt módon működjön? A válasz kíváncsiskodó. Kötés behelyezése.a “populating companies” blokk vége felé a pry lehetővé teszi számunkra, hogy megvizsgáljuk a visszatérési értékeket a futásidő leállításával és egy REPL munkamenetbe való belépéssel:

miután a kötelező.a pry be van helyezve a blokkba, a kódot újra végre kell hajtani a Pry konzol megnyitásához. Amikor a Pry konzol megnyílik a terminálunkban, abban a blokkban vagyunk, amely feltölti a vállalatok adatbázis tábláját, és most már képesek vagyunk tesztelni a változókat és a visszatérési értékeket:

most, hogy megnyitottuk a “populate companies” blokkot, itt az ideje ellenőrizni néhány értéket! Amikor a ‘ job ‘ be van helyezve a pry konzolba, egy hash egy feladat megnyitására nyomtatódik a képernyőre. A job hash-nak több kulcsa van, beleértve a típust, az url-t, a társaságot, a company_url-t, a helyet, a címet stb. Annak érdekében, hogy a helyes értékeket elküldjük az adatbázisba, a következő parancsokat írhatjuk be a Pry terminálba:

miután megállapítottuk, hogy iterációnk a várt módon működik, a kötés.pry lehet távolítani egy asztalunk feltölti után a következő program végrehajtását!

dokumentáció és forráskód böngészés

nézzünk szembe a tényekkel, fejlesztőnek lenni azt jelenti, hogy erősen támaszkodni fog a Google-ra. Gyakran fordulok az internethez, hogy Ruby módszereket kutassak és dokumentációt kutassak annak biztosítására, hogy helyesen strukturáljam a szintaxist. Mi lenne, ha azt mondanám, hogy a Pry olyan plugint kínál, amely lehetővé teszi a dokumentáció böngészését közvetlenül a konzolon? Üdvözöljük a pry-doc drágakőben. Pry-doc lehetővé teszi, hogy olvassa el Ruby dokumentációt az aktuális Pry konzol ülésén. Most egy példa. Tegyük fel, hogy nem emlékszem, hogy a .keresse módszer működik a hash. Beírhatom a következő parancsot a konzolba, és voil! A Pry konzol kinyomtatja az adott módszer dokumentációját a terminálon:

Hurrá! Most már hozzáférhet a hasznos dokumentációhoz a terminálon anélkül, hogy a Google-ra támaszkodna!

hasznos Pry parancsok

  1. pry-megnyitja a Pry konzolt a terminálon

  2. kötés.pry-leállítja a futásidőt és megnyitja a Pry konzolt

  3. kilépés-kilép az aktuális hurokból

  4. kijárat! – Kilép a Pry konzolból

  5. whereami-kinyomtatja az aktuális helyet a programon belül

  6. show-doc-egy osztály vagy osztály metódus(ok) dokumentációjának megjelenítése)

  7. előzmények-kinyomtatja a Pry parancsok előzményeit a terminálra

  8. ls-kiírja a változókat és metódusokat a program aktuális hatókörében

  9. Súgó-kiírja a rendelkezésre álló Pry parancsok aktuális listáját

a Pry drasztikusan javította a Ruby programok hibakeresési képességét, és ez az eszköz, amelyhez mindig fordulok, amikor elakadok. Remélem, hogy hasznosnak találja ezeket a tippeket és trükköket, és ne feledje, hogy amikor a gyomokban van, tegyen egy kötést.feszítsd bele!



+