王争《设计模式之美》学习笔记
代码风格
类、函数多大才合适?
- 类或函数的代码行数太多,一个类上千行,一个函数几百行,逻辑过于繁杂,阅读代码的时候,很容易就会看了后面忘了前面。
- 类或函数的代码行数太少,在代码总量相同的情况下,被分割成的类和函数就会相应增多,调用关系就会变得更复杂,阅读某个代码逻辑的时候,需要频繁地在 n 多类或者 n 多函数之间跳来跳去,阅读体验也不好。
- 对于函数代码行数的最大限制,不要超过一个显示屏的垂直高度,让一个函数的代码完整地显示在 IDE 中,大概是50行左右。
- 对于类的代码行数的最大限制,这个就更难给出一个确切的值了。当一个类的代码读起来让你感觉头大了,实现某个功能时不知道该用哪个函数了,想用哪个函数翻半天都找不到了,只用到一个小功能要引入整个类(类中包含很多无关此功能实现的函数)的时候,这就说明类的行数过多了。
一行代码多长最合适?
- 一行代码最长限制为 100 个字符左右。
- 一行代码最长不能超过 IDE 显示的宽度。
善用空行分割单元块
- 对于比较长的函数,如果逻辑上可以分为几个独立的代码块,可以使用空行来分割各个代码块。
- 在类的成员变量与函数之间、静态成员变量与普通成员变量之间、各函数之间、甚至各成员变量之间,我们都可以通过添加空行的方式,让这些不同模块的代码之间,界限更加明确。
四格缩进还是两格缩进?
- 到底应该是两格缩进还是四格缩进,只要项目内部能够统一就行了。
- 作者个人推荐两格缩进,节省空间。在代码嵌套层次比较深的情况下,累计缩进较多会导致一个语句折成两行。这块说的有一定道理,不过我们团队推行的是四格缩进,PHP用四格缩进的比较多。
- 另外,作者反对用tab键缩进。这里不能认同,只要大家约定好缩进格数,也是可以统一风格的。我这里甚至推荐用tab键缩进,减少键盘敲击次数。
大括号是否要另起一行?
- 首先还是只要团队统一、业内统一、跟开源项目看齐就好了,没有绝对的优劣之分。
- 作者推荐将括号放到跟语句同一行的风格。我平时喜欢另起一行的风格,用vim折行方便整齐,还可以露出函数名方便查看。
类中成员的排列顺序
- 在类中,成员变量排在函数的前面。
- 成员变量之间或函数之间,都是按照“先静态(静态函数或静态成员变量)、后普通(非静态函数或非静态成员变量)”的方式来排列的。
- 成员变量之间或函数之间,还会按照作用域范围从大到小的顺序来排列,先写 public 成员变量或函数,然后是 protected 的,最后是 private 的。也有的排序把有调用关系的函数放到一块。
- 我在排序这块以前好像一直都是瞎写的。。。