読書会でまとめたものになります

05章『コメントすべきことを知る』

#コメントの目的とは?
 →書き手の意図を読み手に知らせること
 
##考え方その①(コメントすべきでは「ない」こと)
  ・コードから”すぐに"わかることをコメントに書かない
   例えば、//コンストラクタとか
  ・コメントのためのコメントをしない
   →コメントを書くことが目的のコメントを書くべきでは、ない。
  ・ひどいコード(例えば、ひどい名前の関数)を補うような補助的なコメントならば、
   コメントを書くのでなく、コードを修正する。
 
##考え方その②(自分の考えを記録する)
   ・監督のコメンタリーのようなコメントに対する大切な考えを書く
  例えば、以下のものがある。
         →//このクラスは汚くなってきている
         →//サブクラス'ResourceNode'を作って整理した方が良いかもしれない
 ・コードが進化している過程で欠陥が生まれた場合、コメントつける必要がある。
  記法を以下に記載
        →TODO: … あとで手をつける
        →FIXME: … 既知の不具合があるコード
        →HACK: … あまり綺麗じゃない解決策
        →XXX: … 危険!大きな問題がある
  ※大切なのは、これからコードをどうしたいか書くこと
 ・定数にまつわる背景を書く
  例えば、以下のようなものがある
  //合理的な限界値、人間はこんなに読めない
  const int MAX_RSS_SUBSCRIPTIONS = 1000;
 
##考え方その③(読み手の立場になって考える)
 ※読み手…プロジェクトを熟知していない人のこと
 ・質問されそうなことを書く
  →読み手が「えっ?」って思うところを予想してコメントを書くこと
 ・ハマりそうな罠を告知する
  →平均的な読み手が驚くような動作はコメントをしておく
 ・「全体像」をコメントする
  →ファイルやクラスには、全体像のようなコメントを書く
   例えば、//このファイルには、ファイルシステムに関する便利なインターフェースを提供
   また、関数の内部にも「顧客が自分で購入した商品を検索する」のような要約のコメントを書くと良い
 
##考え方その④(自分の考えていることを書き出す)
 ・コメントを書くのは、めんどくさいがとにかく考えてたことを書きだすことが大切
  また、書き出してから曖昧な表現を修正すると良い。 
 
担当:らうみー