# 核查表 checkList

# 代码规范

# 注释

  1. 文档是否添加了注释,注释是否符合了规范,并进行了更新
  2. 所有函数是否添加了注释,注释是否符合了规范,并进行了更新
  3. 数据字典是否添加了注释,对其进行了描述
  4. 有无被注释的代码,是否可以删除,如果保留,请写明原因
    • 无效功能或者暂时屏蔽功能的代码
    • 调试代码:console.logdebugger
  5. 如果存在计算方式和公式,请在文档开头标明

# 变量

  1. 所有变量是否都提前声明
  2. 是否存在无效可以删除的变量(未使用)
  3. 变量命名是否符合开发规范

# 函数

  1. 是否尽可能的将功能拆解为函数。
  2. 是否存在重复的代码,考虑是否可以编写成函数或者抽离为公共函数。
  3. 函数是否确保都有返回值或者处理了异常。
  4. 是否存在可以被公共函数库可以替代的函数。
  5. 公共函数库是否有注释或者文档支持。如无,请添加文档或者注释。
  6. 是否对网络请求函数中请求超时、请求错误等情况进行处理,并且对用户进行了反馈。
  7. 函数是否只存在一个入口和出口

# 性能

  1. 对于全局监听事件,比如监听鼠标移动、鼠标点击事件,是否添加了节流操作
  2. 是否可以释放内存和优化资源,存在资源泄漏
  3. 是否存在可优化的循环或者事件,比如增加边界判断
  4. 是否存在可以使用懒加载的地方?
  5. 是否可以进行异步操作

# 兼容

  1. 是否存在兼容性相关代码?代码是否需要考虑兼容性?如何需要,请加上。

# 表单

  1. 是否对输入的内容进行了校验:类型、大小、长度、是否必填
  2. 是否对于输入内容两端空格进行了处理
  3. 进行必填和类型校验时,是否对 0、0.0、0.00 等 0 值进行了特殊处理
    • 进行类型校验时,基于if(Number(0.00))会返回 false 的情况,对 0 要进行特殊处理
  4. 判断范围时,比如大小时,是否考虑了边界情况
    • 比如 0-10,那么考虑是否 0 和 10 在校验范围内
  5. 如果要对输入内容进行格式转换,格式转换是否正确
  6. 提交表单时,是否对用户进行了一个正向的反馈。比如,表单提交时,提示用户提交中。
  7. 对用户向后台发起请求操作进行限制处理:即发起请求后如果请求正在进行,则禁止重复请求(不允许短时间内发起多次请求,比如 1 秒内)
  8. 如果存在表单,那么新增后重置到第一页,编辑后保留在原页。

# 计算

  • 是否存在计算方法,计算方法与业务逻辑是否一致
  • 涉及到保留小数,是否和后端或者规定的小数一致,保留的方法是否一致(四舍五入还是截取)
  • 涉及到精度计算时,考虑由于js本身所造成的的计算偏差并纠正。

# 其他

  1. switch 函数是否添加了 default 分支
  2. 是否存在死循环的情况,如何处理
  3. 是否尽可能的将jscss代码从渲染模板中拆分开来
  4. 循环是否设置了正确的长度和终止条件
  5. 搜索下将表格重置为第一页

# 设计

  1. 用户权限与对应权利
  2. 对删除等重大操作进行确认提示

#

# 文档注释方法


/**
 * 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): 这里存在一个问题,请修正