■ バグの少ないコード
少し前に combat の田中さんが、バグの少ないコードを記述するなんて話をしてゐた。自分にとつては当たり前の話なのだけど、(おもいきり要約して)「無理をしない」「自明なコードだけを書く」「影響の出る範囲を極力少なくする」といふ3点を守れば、バグなんてなかなかでない。そして、これらのことは Haskell, OCaml などの関数型言語を勉強すると、自然に身に付いてしまふ事柄ばかりである。
■ バグのないプログラムの書き方
これに対する私の見解であるが、一言で言ってしまえば、
「無理をしない」である。
あらゆることについて無理をしない。
無理をせずに自明なコードだけ書いていればバグの入る余地がなくなる。
プログラムが純粋関数的であるならば、
入力により出力が決まるのでバグの入る余地は圧倒的に
少なくなるはずである。
その最たるものとして、変数に代入を許さない、
これをC++でもなるべく守るようにする。
とても難しい。だから、完全に排除するのではなくて、
代入によってプログラムの見通しが悪くならないように心掛ける。
変数の内容が掌握しやすければしやすいほど
プログラムから考える余地は減ると思う。
同じ変数をいろいろなところで使わないのも重要だ。