最近、「poof-all-customer-data-is-gone」の問題をデバッグしていました。Directory.Delete(customerRoot, true)
間違った分岐がコード行につながることを理解するのに、それほど時間はかかりませんでした。壊滅的な行は、通常の GUI 開発者によって作成されました。このような災害につながる可能性のある回線は多くありません。だから私の質問は、この特定の呼び出しを防ぐ方法です。(DirectoryInfo.Delete()
2番目のものです)。
これが可能な解決策の優先順位のリストです
- サード パーティがビルド プロセスを変更していない場合のコンパイル エラー
- 第三者のいないランタイム傍受
- サードパーティによるランタイム インターセプト (ビルド プロセスの変更なし)
- サードパーティによるコンパイル エラー (PostSharp が行うと思います)
- 顧客がデータをどのように愛しているかについての GUI 開発者向けの教育セミナー
他のアイデアはありますか?
私たちのシステムには、ファイル/フォルダーの削除専用のサービス (検証およびログ記録) があることに言及します。