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