astăzi marchează sfârșitul celei de-a doua săptămâni a cursului meu imersiv de inginerie software la Flatiron School. Curriculum-ul a fost puternic axat pe apucând fundamentele de bază ale Ruby, inclusiv orientarea obiect, metode de clasă, instanțe de clasă, de lucru cu enumeratori, tablouri, hashes, și Relații obiect.
majoritatea, dacă nu toată limba ruby pe care am scris-o, se află în mediul Test Driven Development (TDD). Scriu cod pentru a trece testele Rspec care au fost scrise de altcineva sau de mine. Realitatea care mi-a răsărit când m-am apropiat de sfârșitul săptămânii a doua este că disponibilitatea mesajelor de eroare Rspec și informative nu poate fi asumată. Din acest motiv, am găsit o plăcere mai profundă în scris și în trecerea propriilor mele teste cu Pry ca partener.
această bijuterie de toate pietre (da, gem instala necesare, joc de cuvinte, de asemenea, destinate) este un instrument esențial pentru depanare, testare și având doar un bun snoop vechi în codul.
Deci, ce este Pry?
la fel ca IRB (Interactive Ruby), trageți este un tip de REPL (citit, evalua, imprimare, buclă). Este minunat pentru că în loc de codificare prin IRB, puteți Cod direct în programul dvs. și a pus într-o ‘legare.trageți oriunde în cod pentru a evalua programul.
Inserare ‘legare.trageți în codul dvs. va îngheța programul dvs. la punctul de inserare a acestuia. Când programul lovește pry, programul va deschide un REPL și vom avea șansa să ne băgăm în codul nostru și să vedem ce se întâmplă sub capotă.
pentru a utiliza, Instalați mai întâi Pry gem
rulați „gem install pry” în linia de comandă.
folosind Pry
am creat un exemplu de clasă de partid care conține metode de clasă și instanță.
eu personal folosesc ” legarea.trageți ” în două cazuri comune, desigur, există multe alte situații pe care le-ați folosi trageți.
instanta unu: indiscreti in valoarea unui argument trecut intr-o metoda.
cum ar fi, Mă întreb ce „ocazie” pe linia 19 este?
am pus o ” legare.trageți” în partea de jos, astfel încât să pot pătrunde în această metodă specială. Notă ” legare.trageți” nu funcționează dacă am pus-o în interiorul meu dacă/else declarație, astfel încât trageți a fost plasat după declarația condiție terminat.
acum, când apelez la metoda „muzică” din programul meu și rulez fișierul meu în terminal, se va deschide Replica. Acum pot testa pentru a vedea care este valoarea „ocaziei” din linia 19 tastând „ocazie” în terminalul meu.
Hei, este o „zi de naștere”! Din moment ce știm că este o zi de naștere, putem fi siguri că, odată ce a alerga, această metodă va reveni „la mulți ani pentru tine, La mulți ani pentru tine”. Dulce!
instanță doi: indiscreti în metode enumerabile
în exemplul de mai jos, Metoda de clasă „all_party_types” va colecta toate tipurile de ocazie de partid și de a reveni o serie de toate ocaziile care au fost create vreodată în clasa de partid.
deoarece pry este un instrument minunat de depanare, ne permite să analizăm valorile a aproape orice ne dorim. De exemplu, Ce este înăuntru „Petrecere.toate „(linia 31) sau” petrecere „(linia 31) sau ” petrecere.ocazie ” (linia 32)? Ne oferă datele pe care le așteptăm?
dacă tastăm în ce vrem să ne băgăm, REPL va imprima exact ceea ce este. Vezi,, mai jos. Rețineți că” element „și” element.ocazie „ne arată doar o instanță de „petrecere”, dar dacă apăsăm” ieșire ” în linia de comandă și reluăm aceste comenzi, REPL va imprima următoarea instanță în buclă și ne va arăta următoarea valoare din matrice.
trageți sfaturi
deoarece munca în echipă face dreamwork, aici sunt meu top patru sfaturi cu privire la utilizarea Pry.
- Solicitați apoi apelați metoda înainte de a încerca să trageți
trebuie să ” solicitați „trageți „în partea de sus a fișierului și apoi să apelați metoda mai întâi înainte de” legare.pry ” va funcționa.
2. Indiscret într-o buclă („exit”)
puteți utiliza „exit” pentru a trage în valoarea returnată a buclei următoare.
de exemplu, dacă ” parte.Toate „conține o serie de 3 instanțe de „partid”, tastând” exit ” în linia de comandă se va muta pe următoarea instanță a buclei. Pentru fiecare instanță a buclei, puteți accesa valoarea „petrecere”. Magie!
3. Forța de ieșire din bucla („!!!”/”ieșire!”)
când ați terminat cu toate că snooping în jurul, puteți lovi”!!!”sau” ieșire!”pentru a ieși din trageți complet. „ieșire ” fără”!”este, de asemenea, o opțiune dacă nu sunteți curios într-o metodă cu o buclă.
4. Resetarea pry („reload-code”)
care este punctul de depanare dacă nu vă puteți schimba codul și testați din mers?
după ce ați terminat actualizarea codului, puteți introduce „reload-code” în linia de comandă. Aceasta va reseta sesiunea pry cu noul program fără a fi nevoie să ieșiți manual din pry și apoi să reintroduceți pry după ce ați făcut modificări la programul dvs.
deci, asta e tot de la mine. Depanare fericit!