しつこいですが、コメントに関していろいろ考えさせられます。コメントの書き方に関するエントリで、いくつかコメントを頂きました。(ヤヤコシイですが)
言語レベルのコメントは駄目というのは一致していると思います。
業務的な意味合いを記するべきというのが持論です。
'list型コレクションの内容を1つの文字列変数に加算する
For each s as string in List(of string) '文字型List を順次、文字要素として取り出し、変数sに代入する
j += s + vbnewline '変数 j に 順次取り出した要素 Sを加え、最後に改行を加える
next o 'For Eachの対句
// 1から100までの合計を求める
for (int i = 1 ; i<= 100 ;i++) // 整数i をLoop変数として設定し 0から100まで1づつ加算してLoopする
{
sum += i; // 合計を求める変数 sumに iを足しこむ
}
というコメントがありました。この種のコメントが永遠と続いてます。
うーん。ある意味で凄い力作。きっと本文の製造より、コメントを書いている工数のほうが多かったと思います。
私の感覚では冗長なコメントにしか見えないです
最初の一文で意味は通じますね。 ステートメント一つ一つの説明は不要です。
このようなステートメントの説明文をみると和文英訳を思い出します。
It's raining cats and dogs. : // 雨に濡れている猫と犬
とは訳さないですね。もちろん土砂振りです。
同じように you are welcome は 「どうも」であって「よく来たね」ではないですね。
個別言語には特有の記述スタイルがありますが、なんの業務も処理しているか意訳することが大事で、単語一つ一つを訳しても処理内容は通じないです。
その観点からもコメントも長文和訳のように意訳するのが肝要かと思います。
仕様書があるので訳す必要がない。という声が聞こえて来ますが、仕様書によってはロジック仕様が書かれているが、何をしているか書かれていない仕様書があったりします。
これでは「プログラマは業務を知らなくても良い。仕様書通り作れば良い。」という姿勢が見隠れしていやなものです。これでは業務レベルのコメントの書きようがありませんね。
自然言語とプログラム言語を同一にするのは恐縮なのですが、自然言語で意思を伝えるのが下手な人はプログラムも下手な気がします。
国語表現するには論理思考が不可欠だと思うのです。ということは、数学の根底は国語学になるのかなぁ。
ということは、理系文系問わず基本は国語学?。 うっ。難しい展開になって来た。
論理処理は論理学?、理系、文系? そんな分け方自体が無意味だと思います。
プログラムは処理を表現する手段だと見れば、コメントのうまい下手と比例する気もします。
オブジェクト指向じゃなんじゃといっても基本はこの辺りの国語力(表現力、集約力)にあるような気がしてならないです。
支離滅裂な文面になってしまい、自分が如何に表現力がないかを晒すことになりましたね。