はじめに
ここ数年で、CursorやChatGPTなどのAIを利用してコーディングすることが増えたが、
それと同時に生成されたコードをコピーペーストするだけでそのまま動いてしまうこともあり、
頭で考えずに、コーディングすることも多くなった。
そのため、AIを使用したコードの理解や説明できていないなぁと思う場面もある。
この課題を解決するために最近、ラバーダックデバッグを取り入れている。🐤
ただ、無心でAI使っていたころよりは、理解が深まったような気がするのでおすすめしたい。
ラバーダックデバッグとは🪿🐥
ソフトウェア開発におけるデバッグ手法の一つで「人に説明するようにコードを一行ずつ声に出して説明する」ことで、バグを発見しやすくするというものです。
- なぜアヒルなのか?(github.blogより)
この話の始まりは1999年、アンドリュー・ハントによって出版された書籍 The Pragmatic Programmer に遡ります。そこには、あるコンピュータープログラマーが、ある日おもちゃのアヒル(ラバーダック)を目の前に置き、自分のコードを一行一行説明したというエピソードが書かれていました。
コードを声に出して説明するプロセスが、その開発者に自分のコードをより理解させ、洞察を深める助けになったのです。なぜなら、ラバーダックは決して口を挟まないからです!
この技法は広まりました。今では「ラバーダックデバッグ」や「ラバーダッキング」と呼ばれています。
生成AI時代のラバーダックデバッグのメリット
(下記は、個人の感想です。)
- ラバーダックデバッグするために、無心で生成AIの結果をコピペすることが減り、説明できるくらいまで調査することが増えた。
- ラバーダックデバッグを行うことで、生成AIが出力したコードやテキスト、その他のデータを一つずつ丁寧に説明する過程で、コード、ロジックへの理解や言語化する力が伸びた。
- 理解度、説明力が上がることで、「生成AIに依存し過ぎている感」が減った。
- 生成AIの出力結果の微妙な誤りやミスに気づくことが多くなった。
- 説明力も付くので、入力プロンプトする質も向上して、意図した回答を得れるようになった。
おわりに
まだ、取り入れて数か月程度だが、
口を動かし、声に出すことで、コードが記憶にも残りやすくなった気がする。
実際、業務でコードの質問を受けても、今までは言語化するのに、
つまる場面もあったが、以前と比較して改善してきたように思える。💪
筆者の愛用にアヒル
(在宅は大丈夫ですが、オフィスなど周囲に人がいてラバーダックデバッグすると
フィギュアに話しかける不思議ちゃん😇になるので、気をつけてください)