第 40 章 四维思考 四维思维
本作品已使用人工智能进行翻译。欢迎您提供反馈和意见:translation-feedback@oreilly.com
自由度越大,头越疼
停留在二维空间
大学的一堂编码理论课上,我们学习了n 维空间中的球体。虽然背后的数学原理很有道理(球体代表编码的 "误差半径",而球体之间的空间则是编码方案中的 "浪费"),但试图将四维球体形象化会让你头疼不已。 不过,从更多维度进行思考可能是改变你对 IT 和业务的思考方式的关键。
沿线生活
IT 架构是一个需要权衡利弊的行业:灵活性会带来复杂性;解耦会增加延迟;分发组件会带来通信开销。架构师的职责通常是根据经验和对系统环境与需求的理解,确定在这样一个连续体上的 "最佳 "位置。一个系统的架构本质上是由多个连续体的权衡组合而成的。
质量与速度
在研究开发方法时,质量与速度之间的权衡是众所周知的:如果有更多的时间,就能实现更好的质量,因为你有时间来正确构建,并进行更广泛的测试以消除剩余的缺陷。如果你数一数听到过多少次这样的论调:"我们希望有一个更好(更可重用、可扩展、标准化)的架构,但我们就是没有时间。"你就会开始相信,"IT 项目管理 101 "的第一课就讲授了这种天赐的权衡。无处不在的 "速战速决 "口号进一步强调了这一信念(第 26 章)。
提出这种论点的人往往还喜欢把那些快速发展的公司或团队描绘成不守纪律的 "牛仔",或者把他们所开发的软件说成是质量不如 "正经 "业务重要的软件,因为他们无法区分快速的纪律和缓慢的混乱(第 31 章)。在这种情况下,有时会使用 术语 "香蕉产品"--一种在客户手中成熟的产品。同样,速度等同于对质量的漠视。
具有讽刺意味的是,"我们没有时间 "这一论点的起因往往是项目团队自己提出的,因为他们往往要花费数月的时间来记录和审查需求或获得批准,直到最后上层管理人员把拳头放在桌子上,要求取得一些进展。在所有这些准备阶段,团队 "忘记 "了与架构团队沟通,直到预算部门的某个人发现了他们,并让他们过来进行架构审查,而审查的开头总是 "我很想做得更好,但是......"。这样做的后果是,IT 架构变得支离破碎,由一系列杂乱无章的临时决定组成,因为根本没有足够的时间 "把它做好",也没有业务案例来事后补救。俗话说:"没有什么比临时解决方案更持久",这句话在企业 IT 领域也同样适用。这些解决方案大多会持续到它们所基于的软件即将失去供应商的支持并成为安全隐患为止。
更多自由度
那么,如果我们在质量和速度之间看似线性的权衡中增加一个维度呢?幸运的是,我们只是从一维转向二维,所以头不会像n 维球体那样疼。我们只需将速度和质量分别绘制在坐标系的两个坐标轴上,而不是一条线上,如图 40-1 所示。现在,我们可以将这两个参数之间的权衡描绘成一条曲线,曲线的形状描述了我们必须放弃多少速度才能获得多少质量。
图 40-1. 从一维到二维
为了简单起见,你可以假设这种关系是线性的,用一条直线来描述。但这可能并不完全正确:当我们的目标是接近零缺陷时,我们需要花在测试上的时间可能会增加很多,而且我们知道,测试只能证明缺陷的存在,而不能证明缺陷的不存在。为生命和安全关键型系统或射入太空的物品开发软件,可能就属于这种情况,这也是理所当然的。火星气候轨道器由于公制和美制度量衡之间的单位误差而解体,从这个例子可以看出,它们很少能实现零缺陷。在连续统一体的另一端,在 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access