反脆弱 做一个内心强大的人_需要强大的软件? 使它脆弱

反脆弱 做一个内心强大的人

在任何软件项目中,目标都是创建稳定的东西。 我们不希望它在用户面前崩溃。 我们也不希望我们的网站显示“内部应用程序错误”而不是网页。 我们希望我们的软件能够运行,而不是失败。 这是一个完全有效和合乎逻辑的愿望,但是要实现这一目标,我们必须使我们的软件尽可能脆弱。 这听起来可能违反直觉,但这就是事实。 您的应用程序在开发中越脆弱 ,在生产中就越强大

脆弱,我指的是“ 快速失败”理念,与“失败安全”相反。 我相信您知道其中的区别,但是无论如何,让我以身作则提醒您。 这是故障安全的:

应该使用此方法来计算并返回文件大小。 它首先检查文件是否存在。 如果不存在,则该方法返回零。 确实,该文件不存在,因此没有大小。 我们可能会抱怨该文件不存在,但是为什么呢为什么要吵让我们保持安静并返回零。 我们不会失败,因为我们正在努力保持应用程序的运行。 这称为故障保护。

相反,这是“快速失败”的外观:

我们找不到文件我们没有隐藏这一事实。 我们将这种情况公开并可见。 我们尖叫和哭泣。 我们抛出异常。 我们希望该应用程序崩溃,崩溃和失败,因为有人给了我们一个不存在的文件。 我们抱怨和抗议。 这称为快速失败。

如果我们随处遵循它,哪种哲学将使我们的软件健壮且具有故障恢复能力只有第二个-快速失败。

为什么由于故障越快越容易,因此修复起来就越快。 修复将更简单,也更明显。 快速故障修复是一种更好的可维护性方法。 代码变得更加清晰。 跟踪故障要容易得多。 所有方法都准备好打破甚至在最微小的问题上抛出异常。

在此示例中,如果该方法返回零,则该文件是否存在且其大小实际上是否为零,或者其名称是否错误并且只是找不到而并不明显。 故障安全方法掩盖了问题并降低了代码的可维护性,这就是为什么难以稳定的原因。

首先,在生产过程中,我们将发生许多崩溃和错误。 但是所有这些都将是可见的并且易于理解。 我们将修复它们并进行单元测试。 每个修复程序将使我们的软件更稳定,并更好地被测试覆盖。

考虑到故障安全方法设计的软件在开始时看起来会更稳定,但会Swift降级,不可避免地会变成无法维护的混乱局面。

考虑到“快速失败”方法而设计的软件在开始时会经常崩溃,但是会通过每次修复提高其稳定性,最终变得非常稳定和健壮。

这就是为什么脆弱性是鲁棒性的关键成功因素。

翻译自: https://www.javacodegeeks.com/2015/09/need-robust-software-make-it-fragile.html

反脆弱 做一个内心强大的人

文章知识点与官方知识档案匹配,可进一步学习相关知识Java技能树首页概览92016 人正在系统学习中 相关资源:cpu温度过高降温控制thinkpad笔记本风扇转速的软件ibm笔记本

来源:danpu0978

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2020年4月16日
下一篇 2020年4月17日

相关推荐