Metoda gumowej kaczuszki

Autor:
Zespół Future Collars
Metoda gumowej kaczuszki

Błędy w kodzie zdarzają się bardzo często i są wpisane w pracę programisty. Choć często powodują frustrację i wpływają na wydłużenie czasu realizacji projektu, to jednak ich odnalezienie i poprawa są kluczowe. W procesie tym pomóc może metoda gumowej kaczuszki. Na czym ona polega?

 

Jak działa metoda gumowej kaczuszki?

Czasami błędy w kodzie odnoszą się do szczegółów, które łatwo jest pominąć ze względu na szybkość programowania. Wystarczy jedna źle wprowadzona zmienna, literówka czy niepoprawnie określony warunek, by tworzony program czy aplikacja nie działały poprawnie. Na szczęście z pomocą programistom przychodzi metoda gumowej kaczuszki, oparta na idei myślenia na głos. Na czym ona dokładnie polega?

 

Rubber duck debugging

Rubber duck debugging to metodologia programowania, odnosząca się do debugowania kodu. Nazwa jest odniesieniem do historii przedstawionej w książce The Pragmatic Programmer autorstwa Andrew Hunta oraz Davida Thomasa wydanej w 1999 roku. Metoda gumowej kaczki polega na weryfikacji napisanego kodu linijka po linijce w celu znalezienia błędów. Proces weryfikacji przebiega jednak w sposób nieco niestandardowy, gdyż podczas wyszukiwania defektów programista objaśnia stojącej obok niego, żółtej kaczce, sposób działania czy zakres funkcji poszczególnych elementów w aplikacji, witrynie czy w programie. Mówiąc wszystko na głos, programista wyjaśniania więc wiersz po wierszu co wykonał oraz dokładnie opisuje problem. W trakcie takiej inspekcji kodu o wiele łatwiej można znaleźć błąd. Metoda gumowej kaczuszki bardzo dobrze sprawdza się także podczas nauki programowania oraz w trakcie kursów dla programistów.

 

Skąd biorą się błędy w kodzie?

Przede wszystkim musimy zdać sobie sprawę z faktu, że komputer „myśli” inaczej niż ludzie. Tam, gdzie używa się tylko logiki i faktów, ludzki umysł jest zdecydowanie znacznie bardziej złożony i wykorzystuje wszystkie pięć zmysłów do podejmowania decyzji. Kiedy dochodzi do zablokowania prac z powodu błędu w kodzie, najczęstszym powodem zaistniałej sytuacji jest to, że programista nie użył umysłu w sposób, w jaki „myśli” komputer do rozwiązywania problemów związanych z inspekcją kodu.

Aby napisać idealny kod, trzeba być tak precyzyjnym, jak to tylko możliwe, ponieważ komputery nie rozumieją niejasnych instrukcji. W związku z tym większość błędów, z którymi programista boryka się w swoim kodzie, wynika z braku dostarczenia jasnych informacji i instrukcji.

 

Ask the duck – czyli jak rozmawiać z kaczką?

metodzie gumowej kaczuszki cały proces inspekcji kodu rozpoczyna się od stwierdzenia faktu, że w napisanym kodzie jest błąd. Na wstępie nie wdrażamy naszego partnera, żółtej kaczuszki, w szczegóły. Staramy się jedynie nakreślić ogólny problem.

W kolejnym kroku przechodzimy do szczegółowej weryfikacji kodu, opisując na głos kaczce, linijka po linijce, co zostało napisane, dlaczego i w jakim celu. Należy przy tym pamiętać, że im bardziej szczegółowe jest wyjaśnienie, tym łatwiej będzie znaleźć błąd.

Efektem rubber duck debugging jest znalezienie rozwiązania problemu. Literówka, niewłaściwa zmienna lub nieprawidłowa składnia zostają wówczas naprawione, a przeprowadzony z kaczuszką monolog można uznać za skuteczny.

 

Aspekt psychologiczny w metodzie gumowej kaczuszki

Choć wiele osób na myśl o rozmowie z kaczką zaczyna się uśmiechać, to jednak metoda ta bazuje na solidnych, naukowych filarach.

Zaobserwowano, że podczas wyjaśniania komuś koncepcji lub problemu w mózgu zachodzą dwie subtelne, ale przełomowe zmiany.

Pierwsza z nich spowalnia myślenie. Podczas opowiadania jesteśmy w stanie opisać szczegóły dokładniej, nie pomijając żadnych informacji. Druga zmiana dotyczy z kolei percepcji postrzegania rozmówcy, z którym mamy do czynienia. Rozmawiając z gumową kaczką, traktujemy ją poniekąd z automatu, jako mniej doświadczonego w programowaniu przeciwnika, przez co wszystkie elementy kodu objaśniamy dokładniej, jak dla laika.

Zakładając, że kaczka nie zna szczegółów problemów tak dobrze, jak my, jesteśmy zmuszeni opisać nawet te najdrobniejsze fragmenty kodu, przez co szansa na znalezienie błędu wzrasta. Ten psychologiczny aspekt metody gumowej kaczuszki dla programistów jest tak naprawdę częścią teorii rozwoju poznawczego Piageta.

Reasumując, metoda gumowej kaczuszki to dla programistów szybka droga do przeprowadzenia skutecznej inspekcji kodu. Czasem zatrzymanie się, czy nawet wykonanie kroku wstecz, daje lepszy pogląd na całą sytuację. W przypadku debugowania kodu kwestie te są kluczowe. Bez znalezienia błędu i poprawy nie można przejść bowiem do kolejnych etapów projektu. Warto więc porozmawiać z kaczuszką, aby za pomocą właściwych pytań, samemu udzielić sobie odpowiedzi na nurtujące nas problemy.

Skorzystaj również z naszych kursów online:

Przeczytaj jeszcze więcej
1-1

Kosmos w zasięgu ręki: Jak technologie satelitarne przekształcają naszą przyszłość

Nie tylko odległe galaktyki Kosmos od zawsze porywał ludzką wyobraźnię, uruchamiając wizje odległych galaktyk, nieodkrytych tajemnic i możliwości przekraczających granice naszej codzienności. Często myślimy o nim przez pryzmat wielkich hollywoodzkich produkcji, z aktorami takimi jak Matthew McConaughey, George Clooney czy Matt Damon w roli odkrywców nowych światów, lub też epickich sag takich jak „Gwiezdne Wojny” i „Star Trek”, które przenoszą nas w odmienne, fascynujące rzeczywistości. Jednakże Kosmos w zasięgu ręki: Jak technologie satelitarne przekształcają naszą przyszłość

reiziger

Od Absolwenta Future Collars do specjalisty IT w Reiziger Consulting LLC

Partnerstwo to idealnie wpisuje się w misję Future Collars, mającą na celu umożliwienie absolwentom rozwijania karier, które nie tylko odpowiadają ich zestawowi umiejętności, ale także aspiracjom. „Rozwój sektora technologicznego na Słowacji generuje zapotrzebowanie na wykwalifikowanych specjalistów IT. Dzięki współpracy z Reiziger Consulting LLC umożliwiamy firmie dostęp do absolwentów naszej szkoły, którzy dołączą do szeregów wysoce kompetentnych pracowników” – komentuje Beata Jarosz, CEO Future Collars. Współpraca między Future Od Absolwenta Future Collars do specjalisty IT w Reiziger Consulting LLC

Jak rozpoczac kariere w cyb erbezpieczeństwie – (1)

Od absolwenta Future Collars do specjalisty IT w Luigi’s Box

Współpraca pomiędzy Future Collars a Luigi’s Box przyczynia się nie tylko do rozwoju karier młodych programistów, ale również do innowacyjności i konkurencyjności rynku e-commerce. Stanowi ona modelową synergię edukacji z biznesem, która przynosi korzyści zarówno absolwentom, oferując im realne szanse zatrudnienia w renomowanych firmach technologicznych, jak i rynkowi pracy. – Nasi kursanci, dzięki kompleksowemu przygotowaniu, które otrzymują podczas naszych kursów, są doskonale wyposażeni do rozpoczęcia kariery w branży IT. Tym Od absolwenta Future Collars do specjalisty IT w Luigi’s Box

Jak rozpocząć karierę w cyberbezpieczeństwie -

Skuteczne prompty do Chata GPT – jak je tworzyć?

Chat GPT – dlaczego warto? Fenomen Chat GPT wynika z połączenia dwóch kluczowych czynników: zaawansowania technologicznego i szerokiego spektrum zastosowań. Dzięki wykorzystaniu algorytmów uczenia maszynowego, Chat GPT potrafi interpretować zapytania użytkowników i generować odpowiedzi, które często są trudne do odróżnienia od tych udzielanych przez człowieka. To, co czyni go szczególnie atrakcyjnym, to jego wszechstronność – od pomocy w nauce i pracy, przez kreatywne pisanie, aż po rozrywkę i gry. Według badań Harvard Skuteczne prompty do Chata GPT – jak je tworzyć?

10 post

Równy dostęp i pełne wykorzystanie potencjałów, czyli 10 postulatów na rzecz przyszłości rynku pracy w sektorze technologicznym

LIST OTWARTY do instytucji rządowych, środowisk biznesowych, środowisk akademickich, oraz każdego, kto podziela wizję znaczenia edukacji i ciągłego rozwoju dla przyszłości Polskiej gospodarki.   Szanowni Państwo, Liczby mówią same za siebie:  W Polsce, 90% firm boryka się z luką kompetencyjną, co utrudnia rekrutację właściwych pracowników, przy czym tylko 6% pracowników uczestniczyło w reskillingu (raport: „Reskilling wielki reset umiejętności”). Globalnie, 40% firm napotyka podobne wyzwania, a do 2025 roku połowa światowych pracowników Równy dostęp i pełne wykorzystanie potencjałów, czyli 10 postulatów na rzecz przyszłości rynku pracy w sektorze technologicznym

Monika Mrówka

Rola AI w przyszłości: między obawami a możliwościami

W wywiadzie dla Future Collars, Monika Mrówka podkreśliła znaczenie zrozumienia i odpowiedniego wykorzystania sztucznej inteligencji w różnych dziedzinach życia zawodowego i osobistego. Wskazała na wyzwania związane z ograniczonym zrozumieniem procesów uczenia się AI, co często prowadzi do obaw przed niekontrolowanym rozwojem i potencjalnymi skutkami dla ludzkości. OGLĄDAJ: Rola AI w przyszłości: między obawami a możliwościami Future Collars: W obliczu rosnących obaw dotyczących wpływu sztucznej inteligencji na rynek pracy, jakie Rola AI w przyszłości: między obawami a możliwościami