如何降低函数复杂度
1.命令和查询分离
- 命令是指做什么(mock测试)
- 查询是表示返回什么(stub测试)
2.使用JSLint,验证代码合理性
3.圈复杂度<10
圈复杂度:在完全覆盖代码的情况下,需要编写的单元测试的最小数量
工具:jscheckstyle
4.代码的复用
- 使用其他人维护的可用于生成环境的第三方(外部或内部)代码
- 复用自己的代码--如果代码被编写了两遍,就将其提取到函数中去
5.低扇出
扇出:过程A的扇出是表示过程A的内部流程数量与过程A所更新的数据结构数量之和
做法:
- 避免单个函数做太多的事
- 避免关联太多的外部函数
- 建立抽象层
6.常用功能高扇入,不常用功能低扇入
扇入:过程A的扇入是过程A 的内部数据流程数量与欲从过程A中获取信息的数据结构数量之和
7.低耦合
参考:<编写可测试的JavaScript代码>第二章