敏捷Agile方法

代码评审清单

  清单Checklist是代码评审Code Review 中常用工具,它们能够确保评审工作能在团队中得到一致的贯彻执行,也是一种找出Bug并解决的通用方式。

  软件工程研究表明一般程序员会犯15-20个通用错误,将这些错误加入检查列表清单,你能确保发现它们,帮助你解决纠正,下面是清单内容,这些内容你可以在实践中进行优化扩充,作为一般规则,任何清单应该是具体的,如果可能的话,你最好给出二选一明显判断, 这有助于避免团队出出现不一致的判断。

 

通用  

  • 代码能运行吗?它是否实现了预期的功能,逻辑是正确的,等等
  • 代码容易理解吗?
  • 代码符合我们的编码规范阅读吗? 通常涵括大括号位置 变量和函数名称,行代码长度 每行代码前空格 格式和注释等
  • 有任何重复的冗余代码吗?
  • 代码是否尽可能模块化了?
  • 全局变量是否能够被用其他方式替换?
  • 代码之外有注释吗?
  • 循环有一个正常固定的长度和正确的中断条件吗?
  • 代码能被库包函数替换吗?
  • 日志调试信息能被去除吗?

 

安全

  • 所有数据输入检查或再编码否?检查输入是否是正确类型 长度 格式和范围。
  • 第三方库包在哪里使用了,是否返回捕获的错误?
  • 输出值检查否?编码否?
  • 无效参数值是否处理了

 

文档

  • 是否有代码意图的注释和描述?
  • 所有函数注释了吗?
  • 是否有不寻常行为 特殊情况的处理描述?
  • 第三方库包功能的使用是否注明了?
  • 数据结构和测量单位(时间 重量等)是否解释了?
  • 是否有未完成代码?如果是,应该移除或者使用合适标签如'TODO'注明了吗?

 

测试

  • 代码是否可测试?不要加入或隐藏太多依赖 不能初始化对象,测试框架可以使用代码的方法测试等等
  • 测试有吗?它们复杂吗? 至少你们同意了代码覆盖率.
  • 测试代码的单元测试是否实现了功能的预期?
  • 数组是否检查了'out-of-bound(溢出)' 错误?
  • 任何测试代码是否能用一个存在的API替代?

 

 美国NASA的JavaScript编码标准规范指南