実装時にバグを減らす

以前に述べたバグの原因それぞれについて
実装段階でのバグを減らすTipsを挙げます。


怠慢によるバグ

  • エラー処理を確実に行いましょう。関数を呼び出したら必ず戻り値をチェックするようにしましょう。
  • エラー処理が面倒であれば、例外処理によるエラーモデルを取り入れるのも手です
  • assertや例外を用いた制約プログラミングを心がけましょう
  • 事前条件、実行時条件、事後条件を明確にし、コードでそれらを表現しましょう


不注意によるバグ

  • 意味のない変数名を使うのをやめましょう(a,b,c,dとかは使わない)
  • 似た名前の変数名や関数名をつけない
  • C++であれば名前空間や、Javaであればパッケージ名をつけ、明確に区別しましょう(CではPrefixやSuffixで区別)
  • 最近のリッチなIDEによるコード入力サポートをフルに活用しましょう(emacsなんかでもCモードやC++モード使えば括弧の補完くらいはしてくれます)


知識不足によるバグ

  • ドキュメントを常に手元におきましょう(すぐにドキュメントを参照できるように)
  • 英語を覚えるかExcite翻訳などを活用して英語が読めるようにしましょう
  • ドキュメントを読んでも判らなければテストコードを書いてみましょう


その他のTips

  • インスタンスの所有権を明確にする(newしたクラスがdeleteするなど)
  • 統一されたインターフェイスを規定する(コンテナへのアクセスにはiteratorなどの統一されたインターフェイスを用いるなど)
  • constなオブジェクトはconstとして扱う
  • C++であればstd::auto_ptrなどを使うことで生ポインタを扱わない
  • マルチスレッドやプロセス間通信を行う場合は排他処理とそれによる副作用を考慮する

他にもいろいろあるが、とりあえずこのくらい。
ということでバグについては以上終わり。