Skip to Content
先整理?
book

先整理?

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

导言

软件设计是一个锋利的工具。有些人不知道自己在使用它。有些人在使用它时,抓住的是刀刃,而不是刀柄。这就是我写软件设计的一个重要原因。这又回到了我的个人使命宣言:帮助极客在这个世界上感到安全。

这项任务有两个方面。有时,极客设计软件的方式并不安全,不小心破坏了系统的行为,或者使支持软件的人际关系变得紧张。当你的行为不安全时,感到不安全是明智的。在行为不安全的时候感到不安全,远比懵懵懂懂、毫无头绪地感到安全要好得多。

帮助人们学会安全设计是我的使命。因此,在这些网页中,你会经常看到 "小步、安全地工作 "的提法。我对短期加速不感兴趣。软件设计在创造价值的时候,会随着时间的推移而实现。

Tidy first 有点例外。当你先整理时,你知道你会立即实现整理的价值。这是一种设置。我希望你习惯于像操作代码行为一样操作代码的结构。当我们进一步深入设计时,我们将讨论具有长期回报的行为,以及影响更多人的行为。

当我读到其他关于软件设计的描述时,我发现它们缺少 "多少?"和 "何时?"这两个关键要素。其他软件设计者似乎认为设计是在时间之外进行的,要么是在有任何讨厌的代码拖累你之前,要么是在持续改变代码行为的压力下无限期地暂停。我想探究这些问题,看看能否为回答这些问题提供有用的原则。

软件设计一直是我的智力难题。我很享受这样的时刻:"如果我有这样的设计,它能将这一巨大的变化缩小成一口小菜吗?对我来说,编程有一种虐待狂的味道,是在复杂性的火堆上英勇的自焚。这个世界充满挑战,我们不能忽视让自己和他人更轻松的机会。

软件设计难题的另一个方面是弄清是什么力量在驱动它,以及使用什么原则来应对这些力量。许多设计建议都与现有的证据完全相悖。为什么技术娴熟的设计人员所设计出的结果不可能出自他们所信奉的原则呢?这到底是怎么回事呢?

一本书让我无处藏身。如果我没有完全理解某个主题,你会知道,而我对此无能为力。举例来说,我在 15 年前就能清楚地定义 "内聚力 "这一概念,但直到去年我才对其做出令人满意的解释。我想促使自己理解。

雪崩是最棒的。有一个特别的时刻,我希望你们在练习 Tidy 的时候,先把它整理好。你整理这一点,使这个功能更容易。这一点让那一点更容易然后,Tidy 开始变得复杂。因为你让这个变得更容易,所以那个也变得更容易。突然间,在你毫不费力的情况下,巨大的简化变成了你笔下的一两笔。而且,由于你每一步都带着你的同事,你的天才有了完全知情的听众;当听众也开始从你先小后大的结构变化中获益时,他们会变得更加欣赏你。

在我的动机清单的最后,我将谈谈经济问题。正如我在其他地方写过的那样,我写作不是为了赚钱;我写作是为了赚钱,这样我才有能力写作。与所有技术书籍一样,我并不指望从这些书中获得大奖。如果这意味着我能买得起更好的车,那就足以鼓励我写作,而不是画画、弹吉他或打扑克。所以,是的,我想通过这本书赚点小钱,但我打算提供的价值远远高于我的收费。

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