最近我正在调试一个“poof-all-customer-data-is-gone”问题。很快就发现一个错误的分支导致了Directory.Delete(customerRoot, true)
一行代码。灾难性的线路是由普通的 GUI 开发人员编写的。能导致这样一场灾难的台词并不多。所以我的问题是如何防止这个特殊的电话。(DirectoryInfo.Delete()
是第二个)。
这是我可能的解决方案的优先列表
- 没有第三方更改构建过程的编译错误
- 没有第三方的运行时拦截
- 与第三方的运行时拦截(不改变构建过程)
- 与第三方的编译错误(我猜 PostSharp 会这样做)
- 面向 GUI 开发人员的关于客户如何喜爱他们的数据的教育研讨会
还有什么想法吗?
我会提到我们的系统有一个专门的文件/文件夹删除服务(验证和记录)。