如何降低函数复杂度

1.命令和查询分离

  • 命令是指做什么(mock测试)
  • 查询是表示返回什么(stub测试)

2.使用JSLint,验证代码合理性

3.圈复杂度<10

圈复杂度:在完全覆盖代码的情况下,需要编写的单元测试的最小数量

工具:jscheckstyle

4.代码的复用

  • 使用其他人维护的可用于生成环境的第三方(外部或内部)代码
  • 复用自己的代码--如果代码被编写了两遍,就将其提取到函数中去

5.低扇出

扇出:过程A的扇出是表示过程A的内部流程数量与过程A所更新的数据结构数量之和

做法:

  • 避免单个函数做太多的事
  • 避免关联太多的外部函数
  • 建立抽象层

6.常用功能高扇入,不常用功能低扇入

扇入:过程A的扇入是过程A 的内部数据流程数量与欲从过程A中获取信息的数据结构数量之和

7.低耦合

参考:<编写可测试的JavaScript代码>第二章

posted @ 2017-01-12 14:26  v以恒  阅读(1577)  评论(0编辑  收藏  举报