Debugowanie z Pry: Przewodnik dla początkujących '

podczas pracy na kursach pre-bootcamp prowadzonych przez Flatiron School, nieustannie zmagałem się z sprawdzaniem i debugowaniem wartości zwracanych w iteracjach i zagnieżdżonych strukturach danych. Na Learn.co curriculum wprowadziło narzędzie o nazwie Pry, ale miałem problem ze zrozumieniem, jak zaimplementować je w moim kodzie. Dopiero trudne laboratorium o nazwie Hashketball w końcu kliknęło. Po zbyt długich zmaganiach z laboratorium, w końcu zmusiłem się do przeczytania dokumentacji Pry ’ ego, a moja umiejętność pisania i debugowania iteracji skrótu natychmiast się poprawiła.

jeśli kiedykolwiek będziesz miał trudności z zbudowaniem programu Ruby, Pry może okazać się nieocenionym narzędziem w twoim arsenale. Pry to potężne narzędzie, którego programiści Ruby mogą używać do debugowania programów i pokonywania przeszkód. Podobnie jak inne klejnoty Ruby, klejnot Pry musi być wymagany w Ustawieniach środowiska lub określonym pliku ruby, aby uzyskać dostęp do jego funkcjonalności. Dodatkowo istnieje kilka wtyczek Pry, w tym pry-doc i pry-byebug, które rozszerzają funkcje i możliwości klejnotu. Możesz myśleć o tych wtyczkach jako o osobnych klejnotach, które muszą być wymagane w Twoim pliku gemfile.

po skonfigurowaniu programu za pomocą klejnotu Pry nadszedł czas, aby otworzyć kod i doświadczyć radości z debugowania za pomocą Pry. Pry jest pełen funkcji, ale poniższe przykłady podkreślają to, co uważam za najbardziej przydatne.

REPL (Read, Evaluate, Print, Loop)

Pry może zastąpić zintegrowaną powłokę IRB Ruby i opiera się na funkcjonalności IRB REPL o kilka dodatkowych funkcji. Zarówno IRB, jak i Pry pozwalają na wykonywanie poleceń Ruby w terminalu i otrzymywanie natychmiastowych wyników w terminalu. Posiadanie funkcji REPL w terminalu jest bardzo użytecznym narzędziem, które pozwala szybko przetestować kod Rubiego bez uruchamiania całego programu. Załóżmy na przykład, że chcesz iterować nad tablicą i zobaczyć, jakie wartości są zwracane. Możesz po prostu wprowadzić tablicę, użyć iteratora na tej tablicy i sprawdzić wyniki:

zauważ, że podczas gdy zarówno IRB, jak i Pry zwróciły te same wartości dla tej prostej iteracji, sposób, w jaki PRY drukuje do terminala, wygląda nieco inaczej. Jedną z zalet Pry w stosunku do standardowego IRB jest użycie podświetlania składni. Inne funkcje, które dają Pry przewagę nad IRB obejmują:

  1. uzupełnianie kart

  2. narzędzia do debugowania

  3. możliwość przeglądania dokumentacji

wywołanie w trybie Runtime

być może najbardziej przydatną cechą Pry jest jego zdolność do zatrzymania środowiska uruchomieniowego programu w jego ścieżkach. Programista Ruby może wywołać konsolę pry w czasie wykonywania, wstawiając powiązanie linii’.wścibski wszędzie tam, gdzie chcieliby zatrzymać program. Kiedy Tłumacz uderza w oprawę.pry, PRY otworzy sesję REPL w konsoli, umożliwiając testowanie zmiennych, wartości zwracanych, iteracji i innych.

poniżej znajduje się przykład użyteczności Pry, jeśli chodzi o rozcinanie zagnieżdżonych struktur danych w programach. Niedawno przyczyniłem się do rozwoju dev job search CLI, który opierał się na bazie danych ofert pracy pochodzących z GitHub Jobs API. Dane API zostały zorganizowane w hash JSON, a nasze tabele bazy danych zostały rozdzielone wartościami z tych zagnieżdżonych hashów. Poniższy obrazek pokazuje, jak wypełniliśmy tabelę firm dla tego projektu:

podczas wypełniania tabeli bazy danych ważne jest, aby rekordy wchodzące do tabeli były tworzone z poprawnymi danymi! Jak możemy sprawdzić nasze wartości iteracji, aby upewnić się, że wszystko działa zgodnie z oczekiwaniami? Odpowiedź jest wścibska. Wkładanie oprawy.pry pod koniec bloku „populating companies” pozwala nam zbadać wartości zwracane przez zatrzymanie trybu runtime i wprowadzenie sesji REPL:

po oprawie.pry jest włożony do bloku, kod musi zostać wykonany ponownie, aby otworzyć konsolę Pry. Kiedy konsola Pry otwiera się w naszym terminalu, znajdujemy się w bloku wypełniającym tabelę bazy danych firm i jesteśmy teraz w stanie testować zmienne i zwracane wartości:

teraz, gdy otworzyliśmy blok „populate companies”, nadszedł czas, aby sprawdzić niektóre wartości! Gdy 'zadanie’ jest wstawione do konsoli pry, na ekranie drukowany jest hash dla pojedynczego otwarcia zadania. Job hash ma kilka kluczy, w tym Typ, adres url, firma, company_url, lokalizacja, tytuł itp. Aby upewnić się, że poprawne wartości są wysyłane do bazy danych, możemy wprowadzić następujące polecenia do terminala Pry:

po ustaleniu, że nasza iteracja działa zgodnie z oczekiwaniami, Wiązanie.pry można usunąć, a nasza tabela zapełni się przy następnym uruchomieniu programu!

przeglądanie dokumentacji i kodu źródłowego

spójrzmy prawdzie w oczy, bycie programistą oznacza, że będziesz polegał w dużej mierze na Google. Często korzystam z internetu, aby badać metody Rubiego i przeszukiwać dokumentację, aby upewnić się, że poprawnie strukturyzuję składnię. Co jeśli powiem ci, że Pry oferuje wtyczkę, która pozwala przeglądać dokumentację bezpośrednio w konsoli? Witamy w klejnocie pry-doc. Pry-doc umożliwia odczyt dokumentacji Rubiego w bieżącej sesji konsoli Pry. Teraz przykład. Powiedzmy, że nie pamiętam jak .metoda find działa na hashu. Mogę wprowadzić następujące polecenie do konsoli i voila! Konsola Pry wypisuje dokumentację dla tej metody w terminalu:

Hura! Teraz możesz uzyskać dostęp do przydatnej dokumentacji w swoim terminalu bez polegania na Google!

przydatne polecenia Pry

  1. pry-otwiera konsolę Pry w terminalu

  2. Wiązanie.pry-zatrzymuje środowisko wykonawcze i otwiera konsolę Pry

  3. exit-kończy pętlę prądową

  4. wyjdź! – Wyjście z konsoli Pry

  5. where-wypisuje aktualną lokalizację w programie

  6. show-doc-wyświetla dokumentację dla klasy lub metody klasy)

  7. history-wypisuje historię komend Pry do terminala

  8. ls-wypisuje zmienne i metody w bieżącym zakresie programu

  9. pomoc-wypisuje aktualną listę dostępnych komend Pry

Pry drastycznie poprawił moją zdolność do debugowania programów Ruby i jest narzędziem, do którego zawsze zwracam się, gdy utknąłem. Mam nadzieję, że te wskazówki i sztuczki przydadzą ci się i pamiętaj, że zawsze, gdy jesteś w chwastach, załóż oprawę.wścibski w to!



+