ソフトウェア開発201の鉄則 原理95:コーディング:コードを仕上げる前にコメントを加えよ
要旨
* プログラム実行を与えないことを理由に、ソースコード中にコメントを書かないプログラマがいる
* が、ソースコードのコメントは、後に容易にデバッグ、テスト、保守、進化をさせるのに役立つものだ
* なので、コーディング中には、こまめにコメントを書き加えよう
解説
これは、ほとんどのソフトウェア開発者が、わかっていることだろう。頭では。
それでも、どうしても手間が先に立ち、億劫になってしまうものだ。ソースコードは書かなければ、所望の動きにならないから端折れない。一方、コメントは、書かなくても動作や品質に影響を与えない。そう考えがちでだ。
それが、違うんだな。
コメントも、ソースコード
こう考えた方が、いい。実際、ちゃんとしたコメントの有無は、後々の不具合解決や進化に大きく影響を与えるのだ。
この原理に書いてある例を出すと、
アルゴリズムをコードで表現するところが間違っているのであれば、コードだけ直せばいい。アルゴもコードも間違っていたら、コメントとコードの両方を変更するべきだ。この時、コメントがなかったら、どうやってアルゴリズムの間違いを発見するのだろうか。
そう。わからない、のである。特に、実装者以外が見たときに。
それがわかっていたとしても、コメントを書くのは、やはり億劫なものだ。それをなんとかするには、次のようなことを心がけると、良い。
まず、コードを書いているときにコメントを書こう。
動くものができたら、心境として、あー終わった、となるものだ。それからコメントを書き入れる気分には、なかなか、ならない。
それに、気分より大事なこと。動いているものは、なるべく変更しない方がいい。コメントを書いているときに、ついコードをいじってしまう可能性がある。
原理では「仕上げる前に」と書いてあるが、普段からこまめに、が正解。
次に、書く量を減らそう。
この原理と矛盾するかもしれないが、要は、コードと合わせて「読みやすく、理解しやす」ければいいのだ。
他の原理にもあるが、変数名、関数名は意味のある、わかるものをつけようとか、インデントは深くしないこと、とか、諸々がきちんと守れられて、読みやすいコードであれば、わざわざコメントを入れる必要は、ない。
例えば
getTemporaryData()
という関数に、"Getting temporary data" というコメントは不要だろう。関数名から容易に想像つくので。
コメントを書き入れる必要があるのは、大きくいうと、3つだろう。
まず、コードだけではどうしてもわかりづらいところを、コードの補足として。
もう一つは、アルゴリズムの説明。選択したアルゴとその全体処理の概要が冒頭にないと、コードだけでは、まずわからない。
最後に、いくつか手法に選択肢がある中、とある手法に決定して設計、実装をした場合の、その選択の根拠。これは正しかろうがそうでなかろうが、そう決定した理由を書くべきだ。
コメントを書く内容や場面を限定すれば、だいぶ、やりやすくなるのではないだろうか。
この記事が気に入ったらサポートをしてみませんか?