僕は、ずっと(いつからかは覚えてない)「防衛コードを書くな」と言い続けているのですが、これは受け入れられないことが多いですね。 まず言われることは「それじゃまったくセキュアなシステムにならない」とか「ユーザー(人間)は無謀な操作をするから」とか。そういう事とは関係ないのだけどね。 次に、しばしば責務の放棄と誤解されます。例えば、構文解析で期待してないトークンに出会うとイキナリ例外を投げて終了してしまうプログラムが実際にあったので問い質すと「檜山さんがエラーリカバリーするなと言ったから」と。ここらへんの事は、Erlangに絡めて少し話したことがあります。「Erlang実験室:武士道と云ふは死ぬ事と見付けたり」の「潔さと無責任は違う」のあたり。 実は、僕が推奨したいことは、「××を書くな」よりは「○○を書け」のほうなんです。○○の部分は、ホーア論理に基づくアサーションとか契約(コントラクト)で