有意义的命名和函数
命名:
- 名副其实---选个好名字要花很长时间,但省下来的时间更多。如果发现有更好的名称,就换掉旧的。
- 避免误导---比如,使用accountList指称一组帐号
- 使用读的出来的名称---比如,genymdhms(生成日期,年,月,日,时,分,秒),这个怎么读??
- 类名---类名和对象名应该是名词或名词短语,如Customer、WiKIPage、Account,避免使用Manager、Processor、Date这样的类名。
- 方法名---方法名应当是动词或动词短语。
函数:
- 短小---第一规则短小,第二规则还是更短小。
- 只做一件事---函数应该做一件事;做好这件事;只做这一件事;
- 每个函数一个抽象层级---自顶向下读代码:向下规则
- swith语句---写出短小的switch语句很难。如果你无法避免使用switch,那么请将它放到较低的抽象层级去,并仅出现一次。
- 使用描述性的名称---
- 别害怕长名称,长而具有描述性的名称,要比短而令人费解的名称好。
- 长而具有描述性的名称,比描述性的长注释要好。
- 使用某种命名约定,让函数名称中的多个单词容易阅读;
- 别害怕长时间取名字,这会有助于你理清关于模块的设计思路;
- 命名方式要一致,例如includeSetupAndTeardownPages、includeSetupPages、includeSuiteSetupPage
- 函数参数---
- 最理想的参数是零,其次是一、再次是二、尽量避免三,除非你有特殊理由,否则别用三个以上。
- 别用标识参数,向函数传入布尔值,就是在说函数不止做了一件事,如果true,这样做,false就肯定不会这样做。例如render(Boolean isSuite),少许有些帮助,不过你更应该一分为二,renderForSuite()和renderForSingleTest()
- 无副作用---
- 副作用就是你在撒谎,函数承诺只做一件事,但还是会做其他被藏起来的事。
- 别重复自己