1、短小
函数的第一规则就是短小;
20行的函数是最佳的;
每个函数只做一件事,并且函数都以顺序带到下一个函数,这就是函数应该到达的短小程度。
2、只做一件事
函数应该只做一件事。做好一件事。只做这一件事。
判断函数是否只做一件事,看是否还能在拆分出一个函数;
3、每个函数一个抽象层级
要确保函数只做一件事,函数中的语句都要在一个抽象级上。
自顶向下读代码;
4、switch语句
用抽象工厂来代替;
5、使用描述性的名称
函数的名字正好描述了该函数所做的事;要做到见名知意;
6、函数参数
尽量避免三个参数以上;参数越多测试覆盖所有可能的值的组合就越多;
如果参数过多就该将参数封装成类了;
7、无副作用
还是“只做一件事”的原则;
如果该方法做了两件事一定要在函数名中体现,否则就会发生不可预知的错误;
8、分割指令与询问
9、使用异常代替返回错误码
使用异常代替错误码,错误的处理代码就能从主路径代码中分离出来。得到简化;
抽离出try/catch代码块,做成函数;使用异常代替错误码,新的异常就可以从异常类派生出来,无需重新编译或重新部署;
10、别重复自己
如果过多的重复代码就应该抽取出来;
面向方面编程(Aspect Oriented Programming)、面向组件编程(Component Oriented Programming)也都是消除重复的一种策略。
总结一句:消灭重复
11、结构化编程
12、如何写出这样的函数
分解函数、修改名称、消除重复
总结:
大师级程序员把系统当作故事来讲,而不是当作程序来写。
真正的目标在于讲述系统的故事,编写的函数必须干净利落地拼装在一起,形成一种精确清晰地语言,帮你讲故事。