A szoftverfejlesztésben a rubber duck debugging (gumikacsa-hibakeresés) a kód hibakeresésének olyan módszere, amely a probléma szóbeli vagy írott természetes nyelven történő megfogalmazásával történik. Az elnevezés a The Pragmatic Programmer című könyvben található történetre utal, amelyben egy programozó egy gumikacsát cipelt magával, és úgy keresi a hibákat a kódjában, hogy sorról sorra elmagyarázza azt a kacsának.[1] Számos más kifejezés létezik erre a technikára, gyakran különböző (általában) élettelen tárgyakkal vagy háziállatokkal, például kutyával vagy macskával.

Sok programozónak volt már olyan élménye, hogy elmagyarázott egy problémát valakinek, esetleg olyan valakinek is, aki semmit sem tud a programozásról, és a probléma elmagyarázása közben rátalált a megoldásra. Amikor leírja, hogy mit kellene tennie a kódnak, és megfigyeli, hogy mit csinál valójában, a kettő közötti esetleges ellentmondás nyilvánvalóvá válik.[2] Általánosabban, egy téma tanítása rákényszeríti annak értékelését különböző nézőpontokból, és mélyebb megértést biztosíthat.[3] Egy élettelen tárgy használatával a programozó megpróbálhatja ezt elérni anélkül, hogy bárki mást be kellene vonnia. Ezt a megközelítést már tanították informatikai és szoftvermérnöki kurzusokon.[4][5]

A populáris kultúrában szerkesztés

  • 2018. április 1-jén a Stack Exchange bevezetett egy gumikacsás avatárt a weboldalain mint új funkciót Quack Overflow néven. A kacsa a böngésző nézetablakának jobb alsó sarkában jelent meg, és úgy próbált segíteni a látogatóknak, hogy meghallgatta a problémáikat, és megoldásokkal válaszolt rájuk. A kacsa azonban a látszólagos gondolkodás és gépelés után csupán egy hápogó hangot adott ki. A kacsa a gumikacsázásra, mint a problémák megoldásának hatékony módszerére hivatkozott.[6] Néhány zavart látogató, aki először látta a kacsát, azt hitte, hogy egy rosszindulatú program települt a számítógépére, mielőtt rájött volna, hogy ez egy áprilisi tréfa.[7]
  • A Mátrix: Feltámadások című filmben a főszereplő, Thomas Anderson, aki mellesleg programozó, egy kád vízben ülve, fején egy gumikacsával gondolkodik.[8]

Források szerkesztés

  1. The Pragmatic Programmer: From Journeyman to Master. Addison Wesley (1999). ISBN 978-0201616224  p. 95, footnote.
  2. Baker, SJ, The Contribution of the Cardboard Cutout Dog to Software Reliability and Maintainability, <http://www.sjbaker.org/humor/cardboard_dog.html>.
  3. The Psychology Underlying the Power of Rubber Duck Debugging. Press Up via Internet Archive , 2014. június 25. [2014. július 9-i dátummal az eredetiből archiválva]. (Hozzáférés: 2021. szeptember 10.)
  4. Attwood, Jeff: Rubber Duck Problem Solving. codinghorror.com , 2012
  5. Malan, David: Rubber Duck Debugging in CS50 IDE. noticeable.news , 2020
  6. Stack Exchange has been taken over by a rubber duck!. Meta Stack Exchange , 2018. március 31. (Hozzáférés: 2018. április 1.)
  7. Quack Overflow - Stack Overflow's take on April Fool!. Adventures (Blog) , 2018. március 31. (Hozzáférés: 2018. április 1.)
  8. Mátrix Feltámadások magyar szinkronos előzetes (magyarul)

További információk szerkesztés

A Wikimédia Commons tartalmaz Rubber duck debugging témájú médiaállományokat.

Kapcsolódó szócikkek szerkesztés