Ber*_*t F 28
本质上说,快速失败(又名失败早)是编写软件,使得当有一个问题,该软件未能尽快和为明显的可能,而不是试图在一个可能是不稳定的状态继续.
由Jim
Fowler编辑的Jim Shore 快速失败
http://www.martinfowler.com/ieeeSoftware/failFast.pdf...
幸运的是,有一种简单的技术可以大大减少软件中这些错误的数量.它不会减少错误的总体数量,至少在开始时不会减少,但它会使大多数缺陷更容易找到.该技术是将您的软件构建为"快速失败".
立即和明显的失败
有些人建议您自动解决问题,从而使您的软件更加强大.这导致软件"缓慢失败."程序在发生错误后继续工作但稍后以奇怪的方式失败.
快速失败的系统恰恰相反:当问题发生时,它会立即失败并且明显失败.快速失败是一种非直观的技术:"立即失败并且明显失败"听起来会让你的软件更加脆弱,但它实际上使它更加强大.错误更容易找到和修复,因此更少的投入生产.
...
还要注意一个失败快速迭代器的相关概念- 一个迭代器,它在对迭代器之外的集合进行某些修改之后,尽快抛出而不是继续处于潜在的不稳定或非确定性状态.
“早期失败”意味着如果出现问题,程序应该引发异常并停止工作。(在实用程序员的提示列表中将其描述为Crash Early)
在我的生物信息学工作中,我倾向于使用“早期失败”方法,因为我最关心的是确保正确性。相比之下,Rails 允许您隐藏故障。例如,Railstry
允许您在对象上调用某些内容,并且如果该对象是nil
. 我想这是因为对于网站来说,确保程序持续运行比正确性更重要。
早期失败体现了这样的想法:在构建软件时,您失败或测试失败或者您发现错误更容易纠正(也更便宜).它也适用于您的业务模型.最好早点发现(例如测试中),而不是发布后.
归档时间: |
|
查看次数: |
5327 次 |
最近记录: |