i dag markerer slutningen af den anden uge af mit program engineering immersive kursus på Flatiron School. Læreplanen har været stærkt fokuseret på at forstå de grundlæggende grundlæggende elementer i Ruby inklusive objektorientering, klassemetoder, klasseeksempler, arbejde med tællere, arrays, hashes, og objektforhold.
de fleste, hvis ikke alle ruby sprog jeg har skrevet er i Test Driven Development (TDD) miljø. Jeg skriver kode for at bestå Rspec-test, der er skrevet af en anden eller mig selv. Den virkelighed, der gik op for mig, da jeg nærmede mig slutningen af uge to, er, at tilgængeligheden af Rspec og informative fejlmeddelelser ikke kan antages. Af den grund fandt jeg dybere glæde ved at skrive og bestå mine egne tests med Pry som min sidekick.
denne perle af alle perler (Ja, perle installere nødvendig, ordspil også beregnet) er et vigtigt redskab til debugging, test og bare have en god gammel snoop i din kode.
så hvad er Pry?
ligesom IRB (Interactive Ruby) er Pry en type REPL (læse, evaluere, udskrive, Loop). Det er fantastisk, fordi i stedet for kodning gennem IRB, du kan kode direkte i dit program og sætte i en ‘binding.pry ‘ hvor som helst i koden for at evaluere programmet.
indsættelse af ‘ binding.pry ‘ ind i din kode vil fryse dit program på tidspunktet for dets indsættelse. Når programmet rammer pry, åbner programmet en REPL, og vi får en chance for at lirke ind i vores kode og se, hvad der foregår under hætten.
for at bruge skal du først installere Pry gem
Kør “gem install pry” i din kommandolinje.
ved hjælp af Pry
har jeg oprettet et eksempel på en Festklasse, der indeholder klasse-og instansmetoder.
jeg bruger personligt ” binding.pry ” i to almindelige tilfælde, selvfølgelig, der er mange andre situationer, du ville bruge Pry.
Instance One: Prying i værdien af et argument gået ind i en metode.
synes godt om, hvad “lejlighed” på linje 19 er?
jeg sætter en ” bindende.pry ” i bunden, så jeg kunne lirke ind i denne særlige metode. Bemærk ” binding.pry ” fungerer ikke, hvis jeg lægger det inde i min if/else-erklæring, så pry er placeret, efter at tilstandserklæringen er færdig.
nu, når jeg kalder på “musik” metode i mit program og køre min fil i terminalen, vil Pry REPL åbne. Jeg kan nu teste for at se, hvad værdien af “lejlighed” fra linje 19 Er ved at skrive i “lejlighed” i min terminal.
Hej, det er en “fødselsdag”! Da vi ved, at det er en fødselsdag, kan vi være sikre på, at når den først er kørt, vil denne metode vende tilbage “Tillykke Med Fødselsdagen til dig, Tillykke Med Fødselsdagen til dig”. Sødt!
forekomst to: nysgerrige i enumerable metoder
i eksemplet nedenfor, klassen metode “all_party_types” vil indsamle alle part lejlighed typer og returnere en vifte af alle lejligheder, der nogensinde er blevet oprettet i partiet klassen.
fordi pry er et fantastisk fejlfindingsværktøj, lader det os se på værdierne for næsten alt, hvad vi ønsker. For eksempel, hvad der er indeni “fest.alle “(linje 31) eller” fest “(linje 31) eller ” fest.lejlighed ” (linje 32)? Giver det os de data, vi forventer?
hvis vi skriver, hvad vi vil lirke ind, udskriver REPL nøjagtigt, hvad det er. Se,, under. Bemærk, at “vare” og ” vare.lejlighed “viser os kun en forekomst af” fest”, men hvis vi rammer” Afslut ” i kommandolinjen og kører disse kommandoer igen, udskriver REPL den næste forekomst i løkken og viser os den næste værdi i arrayet.
Pry Tips
fordi samarbejde gør drømmearbejdet, her er mine top fire tips om brug af Pry.
- Kræv ring derefter til metoden, før du prøver at lirke
du skal ” kræve ‘lirke’ “øverst i din fil og derefter ringe til metoden først før “binding.pry ” vil arbejde.
2. Lirke ind i en løkke (“Afslut”)
du kan bruge” Afslut ” til at lirke ind i returværdien af den næste sløjfe.
for eksempel, hvis ” Fest.alle “indeholder en række 3 forekomster af” party”, hvis du skriver” Afslut ” i din kommandolinje, går du videre til næste forekomst af sløjfen. For hver forekomst af sløjfen kan du få adgang til “part” – værdien. Magi!
3. Tving udgang ud af løkken (“!!!”/”Afslut!”)
når du er færdig med alt det snooping rundt, kan du ramme”!!!”eller” afslut!”at komme helt ud af pry. “Afslut ” uden”!”er også en mulighed, hvis du ikke er nysgerrig efter en metode med en løkke.
4. Nulstilling af pry (“reload-code”)
Hvad er meningen med fejlfinding, hvis du ikke kan ændre din kode og teste på farten?
når du er færdig med at opdatere din kode, kan du skrive “reload-code” i din kommandolinje. Dette nulstiller din pry-session med det nye program uden at skulle manuelt afslutte ud af pry og derefter indtaste pry igen, når du har foretaget ændringer i dit program.
så det er alt fra mig. Glad debugging!