Skip to Content
先整理?
book

先整理?

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

前言

这本薄薄的书是系列丛书中的第一本,面向专业程序员--那种对自己的技艺有着浓厚兴趣的软件开发人员,以及那些希望以小博大的软件开发人员。作者肯特-贝克(Kent Beck)就是这样一位兢兢业业的专业人士,他永远关注细节,永远与更大的问题和全局保持一致。

实践型软件开发人员通常很少关注理论,但肯特知道自己在说什么,他将实践和理论融合在一起,编写了一本既可读又实用的整洁代码指南。

在理论上,理论与实践没有区别,而在实践中却有区别。这一精辟论断的不同版本被广泛地错误地归因于阿尔伯特-爱因斯坦和尤吉-贝拉等人。只有书呆子文字工作者(有罪!)才会注意到,正确的出处是本杰明-布鲁斯特(Benjamin Brewster),他是耶鲁大学的一名学生,曾在 1882 年出版的《耶鲁文学杂志》上发表过文章。多亏了 QuoteInvestigator.com 网站上那些兢兢业业的文字怪才们,我才能在这里自信地向观众们介绍这一点怪才细节:这是一门依赖于正确把握细节的职业。

在将理论与实践相结合的过程中,肯特从底层开始,从代码的微小片段和对小细节的一丝不苟开始,然后逐步上升到更大的视角,解释了创建更简洁代码的过程,这种代码在面对不可避免的更改和修正时更加健壮。在编写这本实践指南的过程中,肯特最终借鉴了现实世界中的软件开发经济学以及软件工程的核心理论。

这一核心理论简单地说就是:计算机代码的复杂性取决于它是如何组织成各个部分的,取决于这些部分之间的耦合程度,以及这些部分本身的内聚程度。耦合和内聚理论的来源通常归功于我与埃德-尤尔登(Ed Yourdon)合著的《结构化设计》(尤尔登出版社,1975 年;Prentice Hall 出版社,1979 年)一书,尽管它可以一直追溯到 1968 年在马萨诸塞州剑桥举行的一次会议上的演讲。耦合和内聚几乎没有出现在 1979 年的 Prentice Hall 版本中。编辑们试图说服 Ed 和我省略这两章,因为 "没有人对理论感兴趣"。幸运的是,在软件工程的历史上,作者占了上风,而编辑则被证明是错误的。此后,经过半个世纪的实践和数以百计的研究和调查,理论得到了验证。

耦合度和内聚度只是衡量计算机代码复杂性的标准,这并不是从执行程序的计算机的角度来看的,而是从试图理解代码的人类的角度来看的。要理解任何程序,无论是创建程序、修正程序还是更改程序,都需要理解眼前的这段代码,以及与之相连的、依赖于它、影响它或受其影响的其他代码。如果所有代码都连在一起,形成一个整体,形成认知心理学家所说的 "格式塔",就更容易理解眼前的代码。这就是凝聚力。如果代码与其他代码片段之间的关系较少、相对较弱或受到很大限制,那么从这些关系的角度理解代码也会更容易。这就是耦合。耦合和内聚实际上都是关于大脑如何处理复杂系统的问题。

看到了吗?Nice and tidy.这就是理论。现在开始实际操作的细节,并结合足够的理论来理解这一切。肯特-贝克将为您提供干练的指导。

拉里-康斯坦丁曾任葡萄牙马德拉大学和澳大利亚悉尼科技大学教授。他发表过 200 多篇论文,出版过三十多本书,其中包括与 Lucy Lockwood 合著的 Jolt 奖获奖作品《Software for Use》(Addison Wesley,1999 年),以及以笔名 Lior Samson 撰写的 15 部小说。

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