- PR -

if文のコメントを、どのようにつけますか?

投稿者投稿内容
tak3
ベテラン
会議室デビュー日: 2004/04/15
投稿数: 80
お住まい・勤務地: 菜の花・銀杏
投稿日時: 2004-04-30 01:07
私もあまりコメントを書かないようにしています。
引用:

読んでも分からないのなら、コーディングそのものがおかしいということです.
仮に、そのようなコメントを書くと、後で仕様が変わった場合、
ソースコードとコメントの両方を変更しなければならなくなる、
というのも問題です.


「プログラミング作法」とか「リファクタリング」でも指摘されていたと思います。
以前「コメントのバグ」という言葉を聞いて、なるほど!と思いました。
JavaDocなども処理の詳細を書いてしまうと、実装との乖離が発生するので、DbCの考え方で記述しています。
ととと。。。話がずれてますね。

今回のケースだと
コード:
//ユーザの権限によるメニューのon/off 
if ( isAdministrator ) { 
管理メニュー = true;
} else { 
管理メニュー = false;
}


と、書くかもしれませんが・・・
そもそも、このif文が、どこの関数に書かれているか?で”コメントの粒度”も変わってくると思います。
参照元のスレでもありましたが、オブジェクト指向言語ならそもそも別クラスにして
if文を無くしてしまうっていうのが楽チンですしね。
はにまる
ぬし
会議室デビュー日: 2003/12/19
投稿数: 969
お住まい・勤務地: 誤字脱字の国
投稿日時: 2004-04-30 09:46
はにまるです。
コメントを実際に如何付けいるか?と言えば、3パターンですね

1.「正」条件処理しか存在しない場合は、if文の前にコメント

  // 管理者権限を持っている場合。
  if (ユーザは管理者である) {
   管理メニュー = true;
  }

2.分岐条件の場合は、分岐後にコメント

  if (ユーザは管理者である) {
    // 管理者権限を持っている
    管理メニュー = true;
  } else {
    // 管理権限を持っていない
    管理メニュー = false;
  }

3.条件が複雑な場合、はif文の前にコメント
  ただ、例題の様に条件判断が厄年なら関数化しちゃうな...

  //厄年を判断
  if ((男 and (年齢 = 3 or 年齢 = 24 or 年齢 = 41 or 年齢 = 61)) or
    (女 and (年齢 = 3 or 年齢 = 18 or 年齢 = 32 or 年齢 = 36 or 年齢 = 61))) {
    // 厄年の場合、
  } else {
    // 厄年以外の場合、
  }


てなりますが、ただ最近私が用いている手法は、
コメントの変りにトレース機能を用いている為、処理フローの重要性から記述判断をしています。
そして、テキストエディターで「トレース関数」はコメント表示扱いですね。

  if (ユーザは管理者である) {
    トレース関数("管理者専用メニューにするのだ!");
    管理メニュー = true;
  }
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2004-05-06 09:57
やっぱり、聞いて見るものですねぇ。聞くは一時の恥、知らぬは一生の恥。。。しかし、書いたものはいつまでも残る。。。

 コメントと実際のコードの整合性、確かにその通りです。私も『プログラミング作法』を読んでいますし、実体験として痛感しています。コメントを無くす・・・う〜ん、私の場合、先にコメントを書くのが詳細仕様を兼ねているからなぁ・・・
はゆる
ぬし
会議室デビュー日: 2004/02/16
投稿数: 1008
お住まい・勤務地: 首都圏をウロウロと
投稿日時: 2004-05-06 13:12
こうして見ると、細かくコメントをつける方ってほとんどいらっしゃらないんですね〜。
一応 ”環境” への配慮も考えてのことだったのですが、個人的に見直してみる必要があるかもしれません。
勉強になりました。
(あ、私の場合、現場のコーディングルールに従うのが基本です。コメント奨励ならガンガン書きますし(含むメンテ)、そうでないのなら書きません)
「プログラミング作法」 、私も読んでみますね♪ (ご紹介 Thanks です☆)

…仕様書。そんなモノがある仕事をしなくなって久しいですねぇ(あっはっはー…悲)。
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2004-05-06 18:03
引用:

はゆるさんの書き込み (2004-05-06 13:12) より:

…仕様書。そんなモノがある仕事をしなくなって久しいですねぇ(あっはっはー…悲)。


仕様書を書くのは自己防衛の為です。仕様書を書いて、「これでいいですね」と、確認して、見せた/見たという証拠を取ります。そうしておいて、その人の「言うこと」が、「仕様変更」であることを明確にしないと、とんでもないことになります。「なります」というか、とんでもないことを言われたので、証拠を取るようにしました。。。
pascal
常連さん
会議室デビュー日: 2004/04/29
投稿数: 29
お住まい・勤務地: 神奈川県
投稿日時: 2004-05-07 02:14
話がそれてしまうかも知れませんが、ソースコードと同期の
取れている仕様書ってないですねぇー.
(自戒の念も込めて)
結局は、ソースコードを見て仕様を確認する羽目になるので、自分で書いた仕様書
でさえ、読まないことが多くなってきました.
散々苦労して書いたのに、今となっては、古文書と化しています.

どこかに仕様書とソースコードについてのスレッドないですかね.
みなさんはどうなさっているのか(あまりに抽象的かも知れませんが)
知りたくなって来ました.
_________________
あつしfx
大ベテラン
会議室デビュー日: 2002/04/08
投稿数: 104
お住まい・勤務地: XPできるところ
投稿日時: 2004-05-08 22:23
ソースコードと仕様書の同期がとれないのは普通です。
まず、仕様書だけでちゃんとプログラムか書けるプロジェクトってありますか?
通常は仕様書だけじゃわからないところが出てきて、聞きに行かないといけないの
が多かったりしません?

そういった部分があるのであれば、仕様書とソースの同期が取れないのは仕方がないです。
そこから考えると正しい仕様書がかけるのはプログラムが完成した後
となるのですが、
仕様書の役割として
・なにを作成するかの明示、証拠
というのがあって、これはプログラムを作る前に決めとかなくちゃいけない。

ここらへんが悩ましいです。
_________________
http://aglabo.com/ @Homepage
http://furukawa-select.com/mt/ @Blog
七味唐辛子
ぬし
会議室デビュー日: 2001/12/25
投稿数: 660
投稿日時: 2004-05-09 00:03
そうですね 仕様書はあくまでも仕様書であって設計図とは違いますまから
同期がとれないのは当たり前だと思いますが、仕様書の仕様密度や抽象度にも
よると思いますが、

スキルアップ/キャリアアップ(JOB@IT)