Short cuts: [Prev] [Up] [Next] [Return to Top]

見ても分からないソースがある(Nov.23)

--------------------------------------------
Select Case WhaType(iIdx)
Case ISTYPE1, ISTYPE2
Exit Sub
Case Else
LBNames.RemoveItem iIdx
End Select
--------------------------------------------

 こんなのである。もちろん、何をしているのかは分かる。だけど、なぜやっているのかが分からない。

 こういうのもある。
If i > 0 Then ' iが0より大きい場合

 コメントの内容などソースを見れば分かる。役に立たないコメントの代表。

If i > 0 Then ' モジュールが1つでも存在していた場合

 こんな感じだったら有効な(意味のある)コメントと言えよう。
 だが、ある1行を説明するコメントでは不足。その行が何を意味しているかは分かっても、では全体として何を目指しているのかが分からないからだ。

 冒頭のSelect Caseならこんな風:
--------------------------------------------
'開かれていない場合は削除
Select Case WhaType(iIdx)
Case ISTYPE1, ISTYPE2
Exit Sub
Case Else 'ISTYPE3, ISTYPE4
LBNames.RemoveItem iIdx
End Select
--------------------------------------------

 ソースのあるまとまり部分に対してコメントを付けてやる事が大事。そして省略されている事柄があれば、それもコメントとする(この場合はCase Else部の意味)。
 なお、コメントが「リストボックスから削除」でないことに気付いてね。

 後で検証しようと思った時に、先ず何するものなのかを推察しながらやるのと、コメント通りの事をやっているのかみるのでは効率が大分違う。

 特に関数冒頭でこの関数は何をするものかという説明を付けておくのは重要。余程自明なものはともかく、そうでないものには説明が必要と思うのだ。

 上手なコメントとは:
  「プログラム(ソース)がそこで何をしているのかの説明」ではなく、
  「プログラマ(人間)がそこで何をさせようとしているのかの説明」だと思う。

 後、必ずコメントが欲しいものとして:
  「一見無駄だが、ないと困る処理へのコメント」

 この手の処理はトラブル対応で追加される事が多いはずだが、何も説明がないと担当者が忘れたり、変わった時に「あ。無駄だなこれは。」と削除されてしまう。
 D/Rの時にもそういう不気味なコードは見ていて不安になるものである。一言書いて有れば……。と思うのであります。

#余りにも当たり前の事を書いているのかもしれない……

Short cuts: [Prev] [Up] [Next] [Return to Top]