核查表 checkList
代码规范
注释
文档是否添加了注释,注释是否符合了规范,并进行了更新
所有函数是否添加了注释,注释是否符合了规范,并进行了更新
数据字典是否添加了注释,并且进行了描述
有无被注释的代码,是否可以删除,如果保留,请写明原因
无效功能或者暂时屏蔽功能的代码
调试代码:
console.log
和debugger
如果存在计算方式和公式,请在文档开头标明
变量
所有变量是否都提前声明
是否存在无效可以删除的变量(未使用)
变量命名是否符合开发规范
函数
是否尽可能的将功能拆解为函数。
是否存在重复的代码,考虑是否可以编写成函数或者抽离为公共函数。
函数是否确保都有返回值或者处理了异常。
是否存在可以被公共函数库可以替代的函数。
公共函数库是否有注释或者文档支持。如无,请添加文档或者注释。
是否对网络请求函数中请求超时、请求错误等情况进行处理,并且对用户进行了反馈。
函数是否只存在一个入口和出口
性能
对于全局监听事件,比如监听鼠标移动、鼠标点击事件,是否添加了节流操作
是否可以释放内存和优化资源,存在资源泄漏
是否存在可优化的循环或者事件,比如增加边界判断
是否存在可以使用懒加载的地方?
是否可以进行异步操作
兼容
- 是否存在兼容性相关代码?代码是否需要考虑兼容性?如何需要,请加上。
表单
- 是否对输入的内容进行了校验:类型、大小、长度、是否必填
- 长度校验时,是否去除了两端空格
- 是否对于输入内容两端空格进行了处理
进行必填和类型校验时,是否对0、
0.0
、0.00
等0值进行了特殊处理- 进行类型校验时,基于
if(Number(0.00))
会返回false的情况,对0要进行特殊处理
- 进行类型校验时,基于
判断范围时,比如大小时,是否考虑了边界情况
- 比如0-10,那么考虑是否0和10在校验范围内
- 如果要对输入内容进行格式转换,格式转换是否正确
- 提交表单时,是否对用户进行了一个正向的反馈。比如,表单提交时,提示用户提交中。
计算
是否存在计算方法,计算方法与业务逻辑是否一致
涉及到保留小数,是否和后端或者规定的小数一致,保留的方法是否一致(四舍五入还是截取)
涉及到精度计算时,考虑由于
js
本身所造成的的计算偏差并纠正。
其他
switch函数是否添加了default分支
是否存在死循环的情况,如何处理
是否尽可能的将
js
和css
代码从渲染模板中拆分开来循环是否设置了正确的长度和终止条件
设计
- 用户权限与对应权利
- 对删除等重大操作进行确认提示
- 有表格时,是否对无表格信息的情况进行处理,提示:“暂无信息xx信息!”,并在视觉上居中对齐。
附
文档注释方法
/**
* Title: 文档标题
* Author: 作者
* Date: 2019/01/01
* Description: 文档描述
* LastModifiedDate:2019/01/01
* LastModifiedDescription: 我修改了内容
*/
函数注释方法
/**
* 计算两个数之和
* @param {number} a 参数1
* @param {number} b 参数2
* @return {number} a与b之和
* @note 备注
* @usage 使用示例
*/
数据字典注释方法
/**
* 黄金对应表
* @props {string} type 黄金类型
* @props {number} val 黄金对应
*/
TODO和REVIEW标明方法
// TODO(author): 这里仍然需要添加一个功能
// REVIEW(author): 这里存在一个问题,请修正