チームでソフトウェア開発を進めていると、他の開発者が書いたコードを自分が呼び出したり、逆に自分の書いたコードが他の開発者のコードから呼び出されることがある。その境界はクラスやライブラリだったりする訳だが、何らかのデータのやり取りが発生することに変わりはない。問題はそのデータが妥当なものか否かということだ。 例えば、仕様書に「引数にnullが指定された場合、例外を投げる」と記載しても、実際のコードでは意図せぬ形でnullが指定されて呼び出されることは全然珍しくない。もちろん、所詮は人間が書くコードだからそんなバグが出てくるのは当然のことであり、これ自体は大した問題ではない。問題なのは「そのような異常状態をいかに早く見つけ出すか?」ということだ。中途半端な状態で動作が継続してしまうと症状が拡大し問題発見がかえって遅れるので、見つけ出すのは早いほど望ましい。 だから、各処理の冒頭において、外部か