1

快速失败 -

Fail-fast 是系统或模块在对故障的响应方面的属性。快速故障系统旨在立即在其接口上报告任何可能导致故障的故障或情况。快速故障系统通常旨在停止正常操作,而不是尝试继续可能有缺陷的过程。此类设计通常在操作中的多个点检查系统状态,因此可以及早发现任何故障。故障快速模块将处理错误但不检测错误的责任传递给下一个更高的系统设计级别。

合同设计 -

契约式设计(DbC),也称为契约式编程、契约式编程和按契约式编程,是一种设计软件的方法。它规定软件设计者应该为软件组件定义正式的、精确的和可验证的接口规范,用前置条件、后置条件和不变量扩展抽象数据类型的普通定义。根据商业合同的条件和义务的概念隐喻,这些规范被称为“合同”。

我的问题是这两个术语的相似之处和不同之处。我认为两者都是用于软件设计的。

快速失败更多的是对系统故障的响应,而契约式设计更多的是对系统的保证、最低限度和期望。

但是我如何真正定义它们之间的差异和相似性。

感谢您的帮助。!

4

2 回答 2

0

相似之处:

  • 两者都可以通过断言来实现
  • 两者都是 XML 设计所固有的

差异:

  • 按合同设计不处理意外错误
  • 快速失败不处理冗余检查
  • 契约式设计不会处理糟糕的需求
  • 快速失败不处理需求映射

参考

于 2013-08-29T01:18:27.687 回答
0

它们是相互排斥的。Java 迭代器失败很快,但也是按合同设计的。快速失败只是意味着,在希望不会发生更糟的事情(例如抛出异常)中轰炸。而像故障保险这样的东西,通常意味着当故障发生时,确保没有更糟的事情发生。您可以通过隔离系统组件或通过一些可以处理故障情况的东西来做到这一点,这样就不会发生任何不好的事情(例如会话复制/故障转移)

于 2015-02-09T12:35:18.280 回答