Arthur Wesley zapytał kiedyś Harry’ego Pottera, czy wie, do czego służy gumowa kaczka. Choć Harry nie odpowiedział na to pytanie, to nie znaczy, iż musi ono pozostać bez wyjaśnienia. Tak zwane kaczki debugaczki są wszechobecne w świecie programistów, jednak nie każdy do końca wie, jakie jest ich faktyczne zastosowanie. Do czego więc przydają się kaczki?
Do czego służą gumowe kaczki?
Kaczka debugaczka jest elementem metody debugowania kodu (ang. Duck debugging). Jej obecność pozwala ułatwić zlokalizowanie i pozbycie się zarówno niedużych błędów w kodzie, jak i tych na pozór nierozwiązywalnych. Debugowanie przy wykorzystaniu kaczki opiera się o monolog, którego “słuchaczem” ma być gumowa kaczka. Programista tłumaczy kaczce sposób działania kodu oraz objaśnia jego poszczególne partie.
Gumowa kaczka jest substytutem dla drugiej osoby, która nie zawsze znajduje się w pobliżu podczas debugowania kodu. W tej metodzie istotne jest, aby dokładnie zagłębić się w kod i starać się traktować kaczkę jak osobę, która nie ma zielonego pojęcia o programowaniu. Dzięki rozłożeniu kodu na części pierwsze, odnalezienie błędu jest znacznie bardziej prawdopodobne, niż przy próbie szukania go wzrokiem.
Skąd wzięły się kaczki debugaczki?
Wiemy już, do czego służą gumowe kaczki, jednak pojawia się jeszcze jedno pytanie – skąd adekwatnie wzięła się taka metoda debugowania kodu? Termin „rubber duck debugging” pierwszy raz pojawił się w książce „The Pragmatic Programmer” z 1999 roku, autorstwa Andrew Hunta i Davida Thomasa.
W książce tej autorzy opisują programistę, który debuguje swój kod, tłumacząc go linia po linii, noszonej przy sobie gumowej kaczce. Choć praktyka rozmawiania z gumową kaczką mogła brzmieć głupio dla pierwszych czytelników “The Pragmatic Programmer”, w rzeczywistości okazała się pomocną strategią w znajdowaniu i rozwiązywaniu błędów w kodzie.