Duck debugging - okładka

O metodzie Duck Debugging

Opublikowano Kategorie PozostałeCzas czytania 4min

W tym wpisie przedstawię Co popularną metodę debugowania — Duck Debugging, czyli metodę debugowania gumowej kaczki. Metoda ta wielokrotnie pomogła mi rozwiązać skomplikowane problemy oraz znajdować błędy w istniejącym już kodzie.

Metoda gumowej kaczki — Duck Debugging

Nazwa metody gumowej kaczki, jak nietrudno się domyślić, pochodzi od gumowej kaczki. Tej samej gumowej kaczki, która jest kojarzona z kąpielami.

Metoda debugowania z użyciem gumowej kaczki polega na tym, że tłumaczymy gumowej kaczce jak działa nasz kod i co się w nim dzieje. Istotne jest to, aby robić to linia po linii, robić to na głosw sposób jak najbardziej zrozumiały dla kaczki. Niejednokrotnie podczas tłumaczenia naszego kodu kaczce zdarzy się tak, że pomyślisz: „A może by tak…”, „Chwila, to nie ma żadnego sensu…” lub „Dobra, widzę błąd!”. Na tym polega magia tej metody!

Mimo że na pierwszy rzut oka ta metoda wydaje się wręcz niedorzeczna, to i tak zachęcam do wypróbowania. Sam z niej korzystam bardzo często i wielokrotnie już pomogła mi w debugowaniu pozornie trudnego i wymagającego kodu.

Może Ci się nasuwać pytanie, czy gumowa kaczka jest konieczna w tej metodzie? Na szczęście nie jest. Równie dobrze możesz wykorzystać dowolny inny przedmiot lub nawet możesz mówić sam/a do siebie. Gumowa kaczka jest dość łatwa do ożywienia/personifikacji, dlatego też została ona użyta w tej metodzie.

Gumowe kaczki na drewnianym tle

Modyfikacje metody gumowej kaczki

Ulepszeniem metody gumowej kaczki jest skorzystanie z pomocy innego członka zespołu i wykorzystanie go jako „kaczki”. Wykorzystanie „żywej kaczki” jest o tyle skuteczniejsze, że „kaczka” może wchodzić z nami w interakcję. Na przykład, na etapie walidacji pomysłu „kaczka” może nas dopytać: „A co w przypadku gdy…?”, „W jaki sposób został obsłużony przypadek, w którym…?”, lub też może powiedzieć „Według mnie ten pomysł nie ma sensu, ponieważ…”. W tym wypadku możemy wręcz mówić już o pewnej formie pair programmingu — metody pracy wywodzącej się z programowania ekstremalnego (eXtreme Programming — XP). Pair programming zakłada, że co dwie głowy to nie jedna, a opisana przeze mnie modyfikacja metody gumowej kaczki wykorzystuje tę właściwość.

A co w przypadku, gdy pracujemy zdalnie? W dalszym ciągu możemy wykorzystać członka zespołu jako gumową kaczkę, czasami nawet bez jego wiedzy! Pierwotna metoda gumowej kaczki zakłada mówienie na głos, lecz czasami do rozwiązania problemu wystarczy słowo pisane. Jeżeli szczegółowo rozpiszesz swój problem tak, aby słowem pisanym wyjaśnić go drugiej osobie, niejednokrotnie po przeczytaniu tego, co napisałeś/aś, sam/a dojdziesz do pewnych wniosków. Ostatecznie, może się okazać, że nawet nie musisz klikać „wyślij”, bo twój problem właśnie się rozwiązał! Ostatecznie można odbyć wideorozmowę, co również zdaje egzamin.

Podsumowanie

Mam nadzieję, że metoda gumowej kaczki okaże się dla Ciebie równie przydatna, jak okazała się dla mnie. Jestem ciekaw czy korzystałeś/aś już z metody gumowej kaczki, a jeśli tak, to jakie dała efekty. Podziel się ze mną i innymi czytelnikami swoimi odczuciami w komentarzu. Jak zawsze zachęcam do zapoznania się ze źródłami i materiałami dodatkowymi.

Źródła i materiały dodatkowe

 

Dominik Szczepaniak

Zawodowo Senior Software Engineer w CKSource. Prywatnie bloger, fan włoskiej kuchni, miłośnik jazdy na rowerze i treningu siłowego.

Inne wpisy, które mogą Cię zainteresować

Zapisz się na mailing i odbierz e-booka

Zapisując się na mój mailing, otrzymasz darmowy egzemplarz e-booka 106 Pytań Rekrutacyjnych Junior JavaScript Developer! Będziesz też otrzymywać wartościowe treści i powiadomienia o nowych wpisach na skrzynkę e-mail.

Subscribe
Powiadom o
guest

1 Komentarz
oceniany
najnowszy najstarszy
Inline Feedbacks
View all comments
MrBlackCat
MrBlackCat
2 lat temu

Też tak często robię, że sam sobie tłumaczę po kolei co robi dany kod i nagle pojawia się rozwiązanie. Nie wiedziałem tylko, że ten sposób ma nawet nazwę 😉