TECH MEDIA

テックメディア


ノウハウ
ブログ

手軽にできる ラバーダック・デバッグ方!

その他技術
目次
  1. 01|はじめに
  2. 02|ラバーダック・デバッグとは
  3. 03|ラバーダック・デバッグのコツ
  4. 04|ラバーダック・デバッグのメリット
  5. 05|ラバーダック・デバッグのデメリット
  6. 06|最後に

1. はじめに

こんにちは!お久しぶりです。
リモートワークになると作業効率が上がる片岡です。
最近はコロナウイルスの影響もありリモートワークの機会が増えていますね。
そこで、リモートワーク中にしかできない(?)私が愛用しているデバッグ法を紹介します。

2. ラバーダック・デバッグとは

wikiペディアによると

ラバーダック・デバッグ とは、ソフトウエア工学におけるコードのデバッグ手法である。ラバーダック・デバッグは、The Pragmatic Programmerという本で紹介された、プログラマーがラバーダックを持ち歩きアヒルちゃんに向かってコードを1行ずつ説明することによりデバッグを行うという話が由来である。この手法には、他にも多くの別名があり、しばしば様々な無生物が用いられている。プログラマーの多くは誰かに問題を説明した経験があり、その相手はプログラミングの知識が全くないこともあり得るが、問題を説明している過程で解決策を思いつくことがある。目的とするコードと、実際のコードの挙動を観察して、説明することにより、その違いが明白になるのだ。一般化するならば、あることを説明することによって、異なる見方による評価をする必要が生じることなり、それがより深い理解へとつながる。無生物を用いることにより、プログラマーは、他人を煩わせることなく目的を達成できる。

とあります。

参考:https://ja.wikipedia.org/wiki/ラバーダック・デバッグ

まぁつまり「ひとりごと」です。

他の人に やりたいこと・現在の状態・今自分が書いているコード を説明するために1から頭の中を整理することで、やりたかったことと自分がやっていることの差や、凡ミスに気づくことができるというわけですね。
皆さんも人に相談している途中に自己解決するみたいな経験を1度はされたことがあるのではないでしょうか?

3. ラバーダック・デバッグのコツ

コツを紹介する前に我が家のラバーダックについて紹介します。

か わ い い

とてもかわいいですね。
こんなかわいいわんちゃんにプログラムなんてわかるわけがありません。
初心者に1からコードの流れを教えるように、1行ずつ・細かく・丁寧に説明する必要があります。

この、「1行ずつ・細かく・丁寧に説明する」という工程こそがラバーダック・デバッグのコツになります。
プログラマーにかかわらずですが、自分の作ったものはどうしても合っている前提で、怪しそうなところを頭の中で勝手に判断して見てしまいます。
それこそがバグやエラーの落とし穴で、大体のバグやエラーはしょうもないミスだったりします。
絶対あっている部分でも飛ばしたりせず、1行ずつ丁寧に説明することにより、このミスに気が付くことができるようになります。

4. ラバーダック・デバッグのメリット

他人に依存しない
人間なら途中で飽きられるかもしれませんし、時間を拘束してしまう罪悪感もあるかもしれません。
しかし我が家のラバーダックは最後までかわいい顔で黙って話を聞いてくれます。
心なしか応援してくれているようにも見えますね。
安心して焦ることなく、自分のペースで確認することができます。

リラックス効果がある
ラバーダック・デバッグを行っている間、ラバーダックに触れることで癒しを得ることができます。(個人差あり)
職場の先輩はサンダースのぬいぐるみを置いていました。
僕もランターンの大きいぬいぐるみが欲しいものです。

更にラバーダックは嫌な顔1つせず愚痴を聞いてくれます。
説明ついでに愚痴などを吐き出すなりして、すっきりした状態で再びコードに向かいましょう!

5. ラバーダック・デバッグのデメリット

周りから見ると不審者
職場の人がぬいぐるみに向かって話しかけていたらどう思いますか?
明らかにヤバい人ですよね。
「今日はもう休みな…?」と声をかけられるかもしれません。
そう、このデバッグ法の1番の難点は周りから見ると完全にヤバい人であるという点にあります。
理解のある方々の周りでやるか、1人の時に行いましょう。

6. 最後に

いかがだったでしょうか?
皆さんもラバーダック・デバッグやってみようという気持ちになりましたか?
1人暮らしのリモートワークならとても簡単に導入できるかと思います。
ぜひ、人に相談している途中に自己解決することが多い方、凡ミスが多い方は取り入れてみてください!
それでは、今回はこの辺で失礼します。

RECRUIT 採用情報

「eビジネスに関わる全ての人を幸せにする」
私達とともに新たな時代をつくりませんか?