第11章 コメント ―保守と変更の正確性を高める書き方―
コメントは、コードの理解を促進するための重要な手段ですが、メンテナンスされなければ誤解を生む原因にもなります。本章では、誤解を避けつつ、保守性を高めるコメントの書き方について学びました。
11.1 退化コメント
退化コメントとは、コードと乖離して古くなり、正しく動作を説明しなくなったコメントのことです。コメントはコードに比べて更新されにくく、意図せず偽情報になることがあります。
コードに関する言葉は、会話でも文書でも「伝えたい人の意思の劣化コピー」でしかありません。意図が劣化することを前提に、コメントや命名は可能な限り正確かつ明確にすべきです。
特に、ロジックをなぞるだけのコメントは、理解に寄与しないばかりか、誤った情報として害になりかねません。
つい無意識にそういったコメントを書いてしまう場面もありますが、「そもそも呼び出し側が内部ロジックを気にしなくてもいい設計にする」という視点も忘れずにいたいところです。
11.2 コメントで命名をごまかす
命名が適切でない場合に、意味を補うようなコメントでごまかしてしまうケースがありますが、これはコメントとコードが乖離しやすくなり、結果として劣化コメントにつながります。
再説明が必要なほどの命名は、そもそも命名自体をリファクタリングすべきです。
よくある例として、日本語の補足コメントを付けてしまうことがありますが、それが必要な時点で命名の段階で迷子になっている可能性があります。
とはいえ、ドキュメントコメント(Document comment)は例外で、特にAPIなど外部とのインターフェースに対しては再説明や補足も有効です。ただし、その場合も適切な命名が前提であることは変わりません。
11.3 意図や仕様変更時の注意点を読み手に伝えること
コードが読まれる最大のタイミングは、「保守」や「仕様変更」のときです。そのとき開発者が気にするのは以下の2点です:
- このロジックはなぜこのように書かれているのか?
- 仕様を変更する場合にどこに気をつければよいか?
これらの意図や注意点をコメントとして明示しておくことは、読み手の理解を助ける有益な手段となります。
コメントに対して「これは意図を表す」「これは変更時の注意点」などラベル的な明示があれば、さらに読みやすくなるかもしれません。共通認識を前提に、チームでスニペットを用意してフォーマットを統一するのも有効なアプローチだと感じました。
11.4 コメントのルール まとめ
以下が本章で示された、コメントに関する推奨ルールの一覧です:
- ロジックを変更したときは、必ずコメントも更新する
- ロジックの挙動をただなぞるだけのコメントは避ける
- 可読性の悪いロジックを補足するコメントを書くのではなく、ロジックそのものを改善する
- ロジックの意図や仕様変更時の注意点は、コメントとして残すと価値がある
このようなルールに沿うことで、コメントによる誤解や混乱を防ぎつつ、保守性の高いコードを維持することができます。
11.5 ドキュメントコメント
ドキュメントコメントは、コードにメタ情報を持たせ、エディタでの補助やドキュメント生成に活用されるものです。
こういったフォーマットに従ったドキュメントコメントは、コードの保守性・再利用性に大きく貢献します。
特に、例外の扱いに関しては @throws
で意図的に明記することで、呼び出し元に安全性のヒントを与えることができます。
まとめ
コメントは「書くこと」以上に「劣化させないこと」が重要であると、改めて認識させられました。読み手の視点を想像し、コードを読む場面(保守・変更)でどんな情報が必要になるかを意識してコメントすることが大切です。
また、コメントが必要になる前に「命名・設計・粒度」などを見直すという意識も忘れずに持ちたいと感じました。
ドキュメントコメントのように、コメントそのものに構造を与えることで保守しやすくなる工夫もあるので、チームやプロジェクトのルールとして取り入れていく価値は高いでしょう。
「良いコメント」はコードと共に生き、変更にも耐えうる情報設計の一部である。そんな意識を持って、これからのコードを書いていきたいと思います。