《代码整洁之道》第五章

17 Dec 2021

Reading time ~6 minutes

5.1 格式的目的

先明确一点,代码格式很重要。代码格式不可忽略,必须严肃对待。代码格式关乎沟通。

5.2 垂直格式

5.2.1 向报纸学习

源文件也要像报纸文章那样。名称应当简单且一目了然。名称本身应该足以告诉我们是否在正确的模块中。源文件最顶部应该给出最高层次的概念和算法。细节应该往下渐次展开,直至找到源文件中最底层的函数和细节。

5.2.2 概念间垂直方向上的区隔

每行展示一个表达式或一个子句,每组代码行展示一条完整的思路。这些思路用空白行区隔开来。

5.2.3 垂直方向上的靠近

如果说空白行隔开了概念,靠近的代码行则暗示了它们之间的紧密关系。紧密相关的代码应该互相靠近。

5.2.4 垂直距离

变量声明。变量声明应尽可能靠近其使用位置。

实体变量。实体变量应该在类的顶部声明。

相关函数。若某个函数调用了另外一个,就应该把它们放在一起,而且调用者应该尽可能放在被调用者上面。

概念相关。概念相关的代码应该放在一起。代码的相关性越强,彼此之间的距离就该越短。

5.2.5 垂直顺序

一般而言,我们想自上而下展示函数调用顺序。被调用的函数应该放在执行调用的函数下面。

5.3 横向格式

应该尽力保持代码行短小。

5.3.1 水平方向上的区隔与靠近

我们使用空格字符将彼此紧密相关的事物连接在一起,也用空格字符把相关性较弱的事物区隔开。

赋值操作符周围加上空格字符,以达到强调的目的。

空格字符的另一种用法是强调其前面的运算符。

5.3.2 水平对齐

这种对齐方式没什么用。

5.3.3 缩进

源文件是一种继承结构,要让这种范围式继承结构可见,我们依源代码行在继承结构中的位置对源代码行做缩进处理。

违反缩进规则。有时会忍不住想要在短小的if语句、while循环或小函数中违反缩进规则,多数时间还是会回过头去加上缩进。

5.3.4 空范围

如果无法避免使用while或for语句的语句体为空的结构,就确保空范围体的缩进,并用括号包围起来。

5.4 团队规则

一组开发者应当认同一种格式风格,每个成员都应该采用大家都认同的那种风格。



Reading NotesClean Code Share Tweet +1