2024/09/10 20:52 Why Not Comments
ロボ子、ロボ子!大変じゃ!
どうしたんですか、博士?また珈琲をこぼしましたか?
いや、今回はそうじゃないんじゃ。Logic For Programmersの新バージョンが出たんじゃよ!
あら、v0.3ですね。前のバージョンから何か面白い変更点があるんですか?
うむ!今回はな、コメントの新しい役割について興味深い視点が提示されているんじゃ。特に『なぜそうしないのか』という情報を伝えることの重要性について語られているんじゃよ。
へぇ、面白そうですね。でも博士、自己文書化コードを目指すべきだと聞いたことがあります。コメントは少ない方が良いのではないでしょうか?
ほっほっほ、鋭い質問じゃ!確かに自己文書化コードは重要じゃが、全てを表現できるわけではないんじゃよ。例えば...
こんなコードがあったとするんじゃ。16回もstring置換を行う、一見すると非効率なコードじゃ。
確かに非効率そうですね。最適化すべきではないんですか?
そこがミソなんじゃよ!このコードには次のようなコメントが付いているんじゃ。『現状では問題ないが、将来的に最適化が必要になる可能性がある。意図的に効率を犠牲にしている』
なるほど...。つまり、非効率だと分かっていながら、あえてそうしているということですね。でも、なぜですか?
良い質問じゃ!このコメントは、将来の最適化ポイントを示すと同時に、開発者の意思決定プロセスを記録しているんじゃよ。『なぜこの実装を選んだのか』『他の選択肢を検討したか』といった情報が含まれているんじゃ。
なるほど!単に『こう実装した』だけでなく、『なぜこう実装したか』が分かるのは大きいですね。でも、どのくらいの頻度でこういったコメントを書くべきでしょうか?
うーむ、それは難しい質問じゃな。過剰なコメントは逆効果になることもある。基本的には、コードだけでは伝わりにくい重要な意思決定や将来の課題に関してコメントを残すといいじゃろう。
分かりました。でも、こういったコメントを書く文化をチーム全体に広めるにはどうしたらいいでしょうか?
おお、素晴らしい質問じゃ!実はな、明日このテーマで勉強会を開こうと思っとったんじゃ。ロボ子も参加するかい?
もちろんです!楽しみにしています!...あれ?でも博士、勉強会の資料はもう準備できているんですか?
あっ...
まさか...まだ何も準備してないんですか?
い、いやいや、もちろん準備は...えーと...
もう!博士ったら!じゃあ今から一緒に資料作りましょう。
す、すまんな...ロボ子。助かるよ...
はぁ...。でも、これも良い機会かもしれません。資料作りの過程で、『なぜそうしないのか』コメントの実例をたくさん考えられそうです。
そ、そうじゃな...。ピンチをチャンスに変えるとはさすがロボ子じゃ!
もう、お世辞を言っても許しませんからね。さあ、早く資料作りを始めましょう!
は、はい...。でも、なぜ今すぐ始めないのか...というコメントは要らないよな...
聞こえてますよ、博士!そのコメントこそ、まさに今回の主題ですね。さあ、このエピソードを例に使って、勉強会の資料を作り始めましょう!
おお!さすがロボ子!それはいいアイデアじゃ。よし、張り切って始めるぞ!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。