コードレビューの視点 017 [コードレビューの視点]
防御的にプログラミングされているかに注意する
防御的プログラミングに関しては、過去に書いているこちらを参照してください。書いたコードが正しく呼び出される限り、防御的プログラミングのためのコードは余分なコードのように思えてしまうかもしれません。しかし、様々なモジュールを結合してソフトウェアを作り上げていくと、常に正しく呼び出される保障はありません。
16年ぐらい前の話ですが、当時、ある若いエンジニアのコードをレビューした時に、引数の値の異常値を検査していなかったので、そのことを指摘したことがあります。その時の彼の回答は、「そのような異常値は、仕様書に書かれている正しい値の範囲外であり、そのような値が渡ってくることはありません」でした。
それに対して、「仕様書に書かれた通りの範囲の値が渡されるのは、すべてのデバッグが終わった時なので、検査をするコードを入れなさい」と返事したような気がします。
実際、防御的プログラミングは、それを行ったことによる効率的な障害調査を経験してみないと、必要性を実感できないものです。そのため、強制的に防御的プログラミングをさせる必要があるかもしれません。
ソフトウェアの品質を高める1つの方法として、コードレビューでは、防御的プログラミングを行っているかに注意を払う必要があります。
2015-07-06 16:57
コメント(0)
トラックバック(0)
コメント 0