1、函数应该短小
20行封顶最佳。
代码块和缩进
if语句、else语句、while语句等,其中的代码应该只有一行。
2、只做一件事
函数应该只做一件事,做好这件事,只做一件事。
要判断函数是否只做了一件事,就是看是否能拆分出一个函数,该函数不仅只是单纯的重新诠释其实现。
3、每个函数一个抽象层级
遵循自顶向下读代码:向下规则
我们想要让代码拥有自顶向下的阅读顺序。我们想要让每个函数后面都跟着位于下一抽象层级的函数,这样一来,在查看函数列表时,就能循抽象层级向下阅读,我们把这叫作向下规则。
4、switch语句
利用多态实现埋藏在较低的层级,而且永远不重复。
5、使用描述性的名称
可以使用长而具有描述性的名称命名函数,例如includeSetupAndTeardownPages、includeSetupPages、includeSuiteSetupPage和includeSetupPage等。命名方式要保持一致,使用与模块一脉相承的短语、名词和动词来命名函数。
6、函数参数
尽量少的参数。
一元函数有两种普遍式:1、问关于参数的问题(boolean fileExists("MyFile"))2、操作此参数(将其转换再输出)
参数中不要带有boolean参数,这标志着函数不止做一件事
可以将多的参数封装成对象传递,参数名尽量为名称,并与函数名有关联
7、无副作用
应避免使用输出参数。如果函数必须要修改某种状态,就修改所属对象的状态。
8、分隔指令与询问
函数要么做什么事,要么回答什么事。做单一事件。
9、使用异常替代返回错误码
使用异常代替错误码,新错误码可以从旧异常类派生,无需重新编译。
10、别重复自己
把重复代码封装起来