防御的プログラミングに関して、いくつか記事を書いています。 防御的プログラミング 防御的プログラミングとテスト駆動開発 防御的プログラミングしない後ろ向きの理由 防御的プログラミングしない後ろ向きの理由(2) 防御的プログラミングとカバレッジ 防御的にプログラミングするというのは、公開APIの仕様にその内容を反映するということです。つまり、不正なパラメータが渡された時に、どのように振る舞うか(どのような例外をスローするかとか)を仕様書に記述する訳です。しかし、開発組織として防御的プログラミングの重要性を認識していない場合には、次のようなことが起きています。 開発者の多くが言葉としての「防御的プログラミング」を聞いたこともない。 APIの仕様書には正常な場合の処理内容しか書かれておらず、不正なパラメータが渡された場合の振る舞いが何も記述されていない。 結果として、APIの実装コードでは不正パ