悪態のプログラマ:もっとコメント論 ~その3~ 注釈としてのコメント
以前コメントくれたargvさんの記事。
~その3~と途中そうなのでトラックバックにしてみる。
// Windows XP でも、従来風のデザインで画面を表示する。
System.setProperty(“swing.noxp”, “true”);
この場合だとコメントなくても処理の内容はわかるかも。
むしろ必要なのは従来風にする理由なのかなー。と思っていたら
こんな記事もあった。
そうかも。
あくまで例レベルなので書いたらそうなっちゃっただけかも。
個人的には「もっとコメント論」非常に楽しみです。
argv です。ご指摘ありがとうございます。
確かに、例として変ですね。すみません。
バシッと決まる良い例がないかなぁと思いつつ、なかなか見つからず、いろいろ悩んでいるうちに、不適切なものを選んでしまいました。「[link:ameblo.jp/argv/entry-10001275355.html]真夜中のコード[/link]」で書いたことが実践できてないなぁ。。。
また、適切な例を考えますね。
"か" 改め kata 登場。
今回のargvさんのコメント例はそれほど不適切ではないと思います。
処理の固まりにつけたコメント例ではなく、1ステップに書くならこう、という例ですよね。
例えばログファイルを開くという処理に対してこういうコメントはいただけない。
// ファイルオープン
fp = fopen( "xxxxx", "r" );
何のファイルをオープンしているのかわからない。
これならばどうでしょう。
// ○○ログファイルオープン
fp = fopen( "xxxxx", "r" );
これと同じ感じで、単に「従来風のデザインで画面を表示」だと説明が足りないけど「WindowxXPでも」と付け加えられているから悪くはないと思う。
改めて思ったけど、コメントは WHY と WHAT を(必要に応じて)書く必要がある。
HOW はソースから読み取れるので不要。
つまりソースのみでは HOW しか読み取れないということ。
argvさん、"か" 改め kataさんコメントありがとうございます。
1ステップにコメントをつけることには無理があるのではと考えます。
今回の記事と例の不一致も無理にコメントを記述しようとして
発生したのではないでしょうか?
分岐処理や、ループ処理の前に記述する(固まり)コメントは
理解できるのですがやはりそういった固まりは関数にした気もします。
HOW以外にもソースに記述することは可能だと思うのですが、
なかなか纏めきれないのでヘルプ・ミー(TRU CALLING風)!
※改行に全角空白を使うとは!さすがです。
t さん、kata さんこんにちは。
kata さんは、フォローしてくださってますが、文脈としては WHY の例にすべきところなので、やはり不適切だったと思います。
WHY の例としては、ソースから "ので" とか "から" という文字列を GREP すると出てきます。でも、そのシステムの仕様に関するものが多くて、ブログに書く例としてはいいものがなかなか見つからないのです。
// Windows 98 では CRLF だと化けるので、ここで CR に置換
みたいなのがあったのですが、この例でなんとなく分かっていただけるでしょうか。。。