間違えても平気なようにしておく
ミスに対する再発防止策の考え方。Fail Safe (フェイルセーフ)。
人間は必ずミスをする。だから、万が一、何かミスをしてしまっても、ただちに大惨事にならないように、予め対策を講じておくことが望ましい。
元は「機械やシステムは必ず故障するから、故障した時も安全を保てるように」という考え方。例えば、クルマのエンジンが壊れた時に自動的にエンジンの回転が止まるような作りにしておく、という設計思想。
プログラミングの場合は、「引数が異常値であっても例外を発生させないようにする」「パラメータが存在しない時もデフォルト値で動くようにする」といった作りになる。セキュア・プログラミングの手法の一つ。
- いきなり PC が壊れても大丈夫なように、作業ディレクトリのバックアップを取っておく
- ネットが繋がらなくなっても大丈夫なように、自分が何度も見たい情報はローカルにもコピーを保存しておく
- 本番作業時に操作ミスをしても大丈夫なように、処理を確定させるための仕組みを設けておく
などは、フェイルセーフ的な考え方。
類語
- フールプルーフ (Fool Proof)
- 誤った操作をできないようにしておく工夫
- 例 : ブレーキを踏んでおかないとエンジンがかけられないようになっている自動車
- フェイルソフト、フォールトトレラント設計
- 何か問題があった時に、問題の箇所だけ停止させたり切り離したりして、システムを完全には止めず縮退運転すること
- 例 : クルマのタイヤが一本パンクしたとしても、なんとか走れるような設計
- フェイルオーバー (Failover)
- 予めシステムやサーバなどを2台用意しておき、1台が故障した時にもう1台に切り替える仕組み。冗長化
- フェイルバック (Failback)
- フェイルオーバーの仕組みにより、本来の稼働系から待機系に処理が引き継がれたあと、それを戻す仕組み
- もしくは、本番リリースなどで問題があった時に、元のリソースに戻すこと。切り戻し