ラバーダック・デバッグ

ラバーダック・デバッグ英語: Rubber duck debugging)とは、ソフトウエア工学におけるコードのデバッグ手法である。ラバーダック・デバッグは、アンドリュー・ハントとデビッド・トーマスの共著によるThe Pragmatic Programmer[1]という本で紹介された、プログラマーがラバー・ダック(アヒルちゃん)を持ち歩きアヒルちゃんに向かってコードを1行ずつ説明することによりデバッグを行うという話が由来である。この手法には、他にも多くの別名があり、しばしば様々な無生物が用いられている。

デバッグに使用されるアヒルちゃん

プログラマーの多くは誰かに問題を説明した経験があり、その相手はプログラミングの知識が全くないこともあり得るが、問題を説明している過程で解決策を思いつくことがある。目的とするコードと、実際のコードの挙動を観察して、説明することにより、その違いが明白になるのだ[2]。一般化するならば、あることを説明することによって、異なる見方による評価をする必要が生じることとなり、それがより深い理解へとつながる[3]。無生物を用いることにより、プログラマーは、他人を煩わせることなく目的を達成できる。

Insights are often found by simply describing the problem aloud.

—DuckQuack Overflow

2018年4月1日、 Stack Exchange 社は、自社のウエブサイトにQuack Overflowと名付けたアヒルちゃんのアバターを導入した。 アヒルちゃんは、ブラウザview portの右下に表示され、問題を聞いて解決策を回答することによりサイト閲覧者を支援しようとする。しかし、アヒルちゃんは、考えてからタイピングするように見えた後に、クワッと鳴くだけである。これは、強力な問題解決策としてラバーダック・デバッグをモデルとしたものである[4]。初めてアヒルちゃんをみて混乱したサイト閲覧者の中には、これがエイプリルフールのジョークだと気がつくまで、自分のパソコンにマルウエアがインストールされたと勘違いした者もいた[5]

脚注 編集

  1. ^ The Pragmatic Programmer: From Journeyman to Master. Addison Wesley. ISBN 978-0201616224. http://pragprog.com/the-pragmatic-programmer  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 (2014年6月25日). 2015年7月3日閲覧。
  4. ^ Stack Exchange has been taken over by a rubber duck!”. Meta Stack Exchange (2018年3月31日). 2018年4月1日閲覧。
  5. ^ Quack Overflow - Stack Overflow's take on April Fool!”. Adventures (Blog) (2018年3月31日). 2018年4月1日閲覧。