Skip to Content
先整理?
book

先整理?

by Kent Beck
May 2025
Intermediate to advanced
124 pages
1h 7m
Chinese
O'Reilly Media, Inc.
Content preview from 先整理?

第 23 章 结构与行为 结构与行为

本作品已使用人工智能进行翻译。欢迎您提供反馈和意见:translation-feedback@oreilly.com

软件通过两种方式创造价值:

  • 今天的工作

  • 我们明天能让它做的新事情的可能性

"它今天所做的 "是系统的行为--计算工资、发送空投订单、通知朋友。(是的,所有软件系统都是社会技术系统,我们现在还不会设计其中的社会部分)。

行为有两种特征:

输入/输出对

在这个辖区内,以这样的工资水平工作这么多小时,就应该有这样的工资单和这样的报税表。

不变式

所有应享权利的总和应等于所有扣减额的总和。

行为创造价值。,计算机每秒钟可以计算出数百万个数字,而不必手工计算。事实证明,人们会为无需手工计算数字而付费。如果运行软件的电费是 1 美元,而你可以向人们收取 10 美元的运行费用,那么你就有了一门生意。

从理论上讲,这项业务可以永远运行下去,我们每投入 1 美元,就能产生 10 美元的收益。我们知道这过于简单化了。比特腐烂是真实存在的。有些东西总是在变化。在河流中保持原位需要不断划桨。但就我所做的区分而言,目前这样就足够了。

你知道比每投入 1 美元就能得到 10 美元的机器更好的是什么吗?一台每投入 10 美元就能得到 100 美元的机器。或者每投入 1 美元就能得到 20 美元。

一句话,可选择性。一个系统只要存在某种行为方式,就会改变人们对系统行为方式的期望(海森堡不确定性原理)。无论你花多少钱买一台 10 美元/1 美元的机器,你都会花更多钱买一台可以变成 100 美元/10 美元或 20 美元/1 美元的机器--即使你不知道它会变成哪一种

这就是我花了几十年时间才掌握的秘密。我不必改变系统的行为,就能让它变得更有价值。只要我增加了它下一步可以做什么的选项,我就已经赚到钱了。(我钻进了期权定价公式的兔子洞,才真正巩固了这一认识,但我相信你能想出办法说服自己)。

选择权是软件的经济魔力,尤其是扩展选择权。如果你能制造 1000 辆汽车,也不能保证你能制造 10 万辆汽车。但如果你能发送 1000 份通知,那么只要努力,你几乎肯定能发送 10 万份通知(当我们达到技术的极限时,扩展就变得不那么确定了,但在发展初期,扩展是没有风险的)。

选项最酷的一点是,环境越不稳定,选项就越有价值。这也是我给自己的《极限编程解析》一书起副标题 "拥抱变化 "的部分动机。作为一名年轻的工程师,当一个看似稳定的局面变得混乱时,我感到非常害怕。当我学会增强可选性时,我将混乱视为机遇。

什么会干扰选项?以下是一些会降低软件中嵌入的选项价值的情况:

  • 关键员工辞职。原本需要几天时间才能完成的变革,现在却需要几个月。

  • 拉开与客户的距离。如果你每个月而不是每天都收到一个挑衅性的建议,你的选择就会减少。

  • 变更成本飙升。你不能每天行使一次期权,而只能每月行使一次。期权越少,价值越低。

在本书的范围内,没有任何内容可以直接解决前两个选项杀手的问题,但我们可以对第三个问题做出反应。我们可以在烹饪时保持厨房清洁。

系统结构对其行为并不重要。一个大功能,一大堆小功能,都是一样的结果。结构创造了选择。这种结构可以让我们很容易地在工资计算中加入新的国家,也可以让我们很难做到这一点。

问题在于:结构的可读性与行为的可读性不同。产品路线图是功能(行为变化)列表,这是有原因的。当行为发生变化时,很容易看出来--出现了一个以前没有的按钮。

尽管我们知道必须对结构进行投资,以保持和扩展可选性,但我们无法真正判断是否已经这样做了。代码更容易更改?真的吗?我们真的无法判断我们做得是否足够。如果我们在结构上投入更多,代码会更容易更改吗?我们真的无法判断我们在结构上的投资是否正确。我们所做的结构修改是让代码更容易修改的最佳方法?真的吗? ...

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

More than 5,000 organizations count on O’Reilly

AirBnbBlueOriginElectronic ArtsHomeDepotNasdaqRakutenTata Consultancy Services

QuotationMarkO’Reilly covers everything we've got, with content to help us build a world-class technology community, upgrade the capabilities and competencies of our teams, and improve overall team performance as well as their engagement.
Julian F.
Head of Cybersecurity
QuotationMarkI wanted to learn C and C++, but it didn't click for me until I picked up an O'Reilly book. When I went on the O’Reilly platform, I was astonished to find all the books there, plus live events and sandboxes so you could play around with the technology.
Addison B.
Field Engineer
QuotationMarkI’ve been on the O’Reilly platform for more than eight years. I use a couple of learning platforms, but I'm on O'Reilly more than anybody else. When you're there, you start learning. I'm never disappointed.
Amir M.
Data Platform Tech Lead
QuotationMarkI'm always learning. So when I got on to O'Reilly, I was like a kid in a candy store. There are playlists. There are answers. There's on-demand training. It's worth its weight in gold, in terms of what it allows me to do.
Mark W.
Embedded Software Engineer

You might also like

超越Vibe编程

超越Vibe编程

Addy Osmani
Go程序设计语言

Go程序设计语言

艾伦A. A.多诺万, 布莱恩W. 柯尼汉

Publisher Resources

ISBN: 9798341656949