不会误解的名字是最好的名字——阅读你代码的人应该理解你的本意,并且不会有其他的理解。遗憾的是,很多英语单词在用来编程时是多义性的,例如filter、length和limit。
在你决定使用一个名字以前,要吹毛求疵一点,来想象一下你的名字会被误解成什么。最好的名字是不会误解的。
1.当要定义一个值的上限或下限时,max_和min_是很好的前缀。
2.对于包含的范围,first和last是好的选择。
对于包含/排除范围,begin和end是最好的选择,因为它们最常用。
3.当为布尔值命名时,使用is和has这样的词来明确表示它是个布尔值,避免使用反义的词(例如disable_ssl)。
4.要小心用户对特定词的期望。例如,用户会期望get()或者size()是轻量的方法。
5.条件语句中参数的位置
6.if/else 语句块的顺序
之前你可能没想过太多,但在有些情况下有理由相信其中一种顺序比另一种好:
·首先处理正逻辑而不是负逻辑的情况。例如,用if(debug)而不是if(!debug)。
·先处理掉简单的情况。这种方式可能还会使得if和else在屏幕之内都可见,这很好。
·先处理有趣的或者是可疑的情况。
有时这些倾向性之间会有冲突,那么你就要自己判断了。但在很多情况下这都会有明确的选择。
7.三目运算符
默认情况下都用if/else。三目运算符?:只有在最简单的情况下使用
8.避免使用do/while循环
9.从函数中提前返回
有些程序员认为函数中永远不应该出现多条return语句。这是胡说八道。从函数中提前返回没有问题,而且常常很受欢迎。
10.最小化嵌套
一.通过提早返回来减少嵌套
二.减少循环内的嵌套
11.拆分超长的表达式变成可理解的小块
12.变量可读性
13.代码测试
在测试代码中,可读性仍然很重要。如果测试的可读性很好,其结果是它们也会变得很容易写,因此大家会写更多的测试。并且,如果你把事实代码设计得容易测试,代码的整个设计会变得更好。
以下是如何改进测试的几个具体要点:
A.·每个测试的最高一层应该越简明越好。最好每个测试的输入/输出可以用一行代码来描述。
B.·如果测试失败了,它所发出的错误消息应该能让你容易跟踪并修正这个bug。
C·使用最简单的并且能够完整运用代码的测试输入。
D·给测试函数取一个有完整描述性的名字,以使每个测试所测到的东西很明确。不要用Test1(),而用像Test_<FunctionName>_<Situation>这样的名字。
最重要的是要使它易于改动和增加新的测试