野外偷拍_野外紧急设计

本文探讨了软件设计中的紧急设计概念,强调了在开发过程中拥抱不确定性的重要性。作者指出,软件项目的复杂性和意外问题使得预先设计充满挑战,而紧急设计允许在最后一个负责任的时刻做出决策,以减少不必要的复杂性。文章通过拉姆斯菲尔德的未知理论,解释了设计范围和预设计的局限性,提出在项目中寻找合适的平衡点,以便随着项目的进展进行调整和优化。此外,文章还强调了代码本身作为设计的一部分,以及如何从现有代码中收获惯用模式来改进设计。
摘要由CSDN通过智能技术生成

我在本系列中的许多示例都依赖于精益软件的概念,即将决策推迟到最后一个负责任的时刻 。 但是,您怎么知道那一刻何时到来? 您怎么知道在更好的道路出现之前您可以推动设计决策走多远? 什么样的项目从紧急设计中受益最大? 最终的Evolution Architecture和紧急设计部分将回答这些问题,然后回顾整个系列的一些要点。

首先,我从唐纳德·拉姆斯菲尔德的诗歌开始。

未知的未知数

有已知的未知数。 就是说有些事情我们现在知道我们不知道。 但也有未知的未知数。 有些事情我们不知道,我们不知道。

- 美国前国防部长唐纳德·拉姆斯菲尔德

拉姆斯菲尔德区分未知类别,从我们知道存在但尚未发现的未知开始。 但是他也承认事物的存在超出了我们的知识或经验,以至于我们甚至都不知道寻找它们:“未知的未知数”。

拉姆斯菲尔德在谈论战争的不确定性,但他本来可以谈论软件。 如果您编写了任何非同寻常的软件,则可能涉及未知的未知数问题,这是软件设计中最大的问题之一。 您认为自己对实施解决方案时会遇到的问题有深刻的了解,但是不可避免地会出现意外问题。 例如,与开源框架进行交互并不像您想的那么简单,或者一个问题比最初看起来要细微得多,需要仔细得多的思考。

意外的设计问题不断出现,因为软件的容错能力很低-远低于物理系统。 例如,考虑一下您周围的建筑物。 建造建筑物是一个多人,数月(或数年)的项目。 现在考虑在相似的时间范围内构建的多人软件项目。 这些项目的规模相似,但是物理建筑物对结构缺陷的容忍度更高。 如果电灯开关板不能完全覆盖电线容纳墙壁上的Kong,则建筑物不会倒下。 然而,软件中的小缺陷会使它崩溃。 与原子相比,位的故障容忍度是不可原谅的。 当然,软件(较软)也更容易修复:我们可以铲平漏洞(修复漏洞)并立即重新制造房屋。

如果机翼从飞机上掉下来,法医工程师将首先关注机翼在飞机上的附着位置:在物理系统中,功能误差通常很高。 但是在软件中,执行一行代码通常会引起不稳定,这种不稳定情况在成百上千个看似无关的代码行中都不会显现出来。 <

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值