软件设计:从专业到卓越
上QQ阅读APP看书,第一时间看更新

品味篇 识别优秀设计

软件工程师是专业人士。人们很容易意识到,成为专业人士需要非常多的专业知识和经验,却往往忽略了决定专业人士产出的另一个重要方面——专业人士的鉴赏力。

像卓越的建筑设计师、音乐家这类专业人士,在创造高质量的作品之前,往往花费了数年的时间参观或揣摩卓越的作品,去鉴赏其中的美妙。鉴赏培养的是专业人士的“品味”。

品味非常重要——要做出卓越的工作,首先要能看出哪些工作是卓越的,哪些是拙劣的。优秀的建筑设计师一定能欣赏到建筑的美妙,优秀的软件工程师也能够快速而精准地判断代码和设计的优劣。学会判断和欣赏美,是成为优秀软件工程师的第一步。

本章和第2章聚焦什么是好的设计和什么是好的代码这两个核心问题。我把好的代码特征分为外部特征和内部特征。其中,外部特征是高质量代码应有的外在表现,从结果角度衡量。对这些特征的判断无须深入代码,即使是一个不懂软件的人,也能从外部感知到。内部特征则体现了代码是否“专业”,从代码的内部质量角度衡量。经验丰富的软件工程师,只需要大致读一下代码,就能感知到代码的大致质量。

本章介绍优质代码的外部特征,这些特征可以概括为以下5条。

实现了期望的功能。

缺陷尽量少。

易于理解。

易于演进。

易于复用。

其中,前两条和代码的外部质量有关,关注当下的效益;后3条和代码的演进有关,关注长期的价值。