🐤

ラバーダック・デバッギング公式(?)手順

2021/03/25に公開

https://and-engineer.com/articles/YFLlIRAAACMAp2X_

というのが話題になっていたので昔見つけたオフィシャルサイトを掘り起こした。
Rubber Duck Debugging というサイトである。
https://rubberduckdebugging.com/

GithubでMITライセンスになっている。
https://github.com/RubberDuckDebugging

Original Credit: ~Andy from lists.ethernal.org

によると正しいラバーダッキングのやり方は以下らしい。
http://lists.ethernal.org/oldarchives/cantlug-0211/msg00174.html

  1. Beg, borrow, steal, buy, fabricate or otherwise obtain a rubber duck
    (bathtub variety)
  2. Place rubber duck on desk and inform it you are just going to go over
    some code with it, if that's all right.
  3. Explain to the duck what you code is supposed to do, and then go into
    detail and explain things line by line
  4. At some point you will tell the duck what you are doing next and then
    realise that that is not in fact what you are actually doing. The duck
    will sit there serenely, happy in the knowledge that it has helped you
    on your way.

ざっくり解釈すると以下:

# ラバーダック・デバッギング

ラバーダック・デバッギング の方法:

1. 乞う、借りる、盗む、買う、捏造する、またはその他の方法でラバーダック(お風呂グッズ)を入手する。
2. ラバーダックを机の上に置き、いまからコードを調べようとしていることを伝える。
3. コードが何をしようとしているのかをダックに説明する。詳細に、コードを一行一行説明していく。
4.  次に何をしようとしているかをダックに伝えることで、それが実際に自分がやろうとしていることではなかった、という事実に気づける。ダックが静かに座って、自分の進む道を助けてくれたということに満足するでしょう。

**注意**: ピンチの時は同僚がダックの代わりになってくれるかもしれませんが、ミスは同僚ではなくダックに打ち明けるのが好ましい場合が多い。

*Original Credit*: ~Andy from lists.ethernal.org

## FAQs
- **ダックがとても賢いなら、なぜ私たちはダックにすべての仕事をさせないのでしょうか?**
本来なら素晴らしいことですが、実はほとんどのダックは指導的な役割を引き受けることを好みます。コーディングするダックもいますが、それらは、高度に機密化された政府の秘密プロジェクトのために選ばれているため、そのダックの名は誰も聞いたことがありません。

- **ラバーダックデバッギングについて詳細はどこで学べますか?**
より詳しい情報は、[wikipedia.org](http://en.wikipedia.org/wiki/Rubber_duck_debugging), [lists.ethernal.org](http://lists.ethernal.org/oldarchives/cantlug-0211/msg00174.html), [codinghorror.com](https://blog.codinghorror.com/rubber-duck-problem-solving/), and [zenhub.com](https://www.zenhub.com/blog/why-rubber-duck-debugging-is-the-best-way-to-debug-your-code/)にあります。

- **どこで私は自分のダックを雇うことができますか?**
素晴らしい質問ですね! Amazon.com](https://www.amazon.com/s/ref=nb_sb_noss?url=search-alias%3Daps&field-keywords=rubber+duck)では幅広く、世界有数の大学のいくつかの技術学位を取得して卒業した手頃な価格のダックが選べます。

- **なぜこのサイトは存在するのですか?**
2008年、インターン生だった私は、[Kevin's Rubber Duck Story](https://www.youtube.com/watch?v=huOPVqztPdc)に似たようなメンターに何度もしつこくしつこくしていましたが、最終的にはメンターが1999年の本[The Pragmatic Programmer](http://lists.ethernal.org/oldarchives/cantlug-0211/msg00174.html)の話を2002年の[lists.ethernal.org post by Andy](https://en.wikipedia.org/wiki/The_Pragmatic_Programmer) にて私に指し示してくれました。その夜、私はAmazonでラバーダックを注文し、自分の行動を認める方法としてこのドメイン名を購入しました。

ラバーダックはここで手に入る:
https://www.amazon.com/s?k=rubber+duck&ref=nb_sb_noss

ゴムのアヒルちゃん
ラバーダック・デバッグ - Wikipedia

Stack Exchange has been taken over by a rubber duck!
Rubber Duck Debugging
参考: 教えることで自分がいちばん学ぶ、「ファインマンテクニック」を使って複雑な概念をよりよく理解する - Qiita

Happy Ducking!

Discussion