
返回文章
ARTICLE
代码 review 规范总结
1. 是否配置eslint 2. 是否通过eslint检查 3. 是否使用git-hopma-cli管理git分支 4. 是否线上打包 5. 是否使用公共的gitlab-ci配置 6. 是否使用多个组件库 1. 是否处理网络异常 2. 是否对类型做过处理和转换并设置为空时的默认值 3. 是否检测数据格式合法性 1. 是否未做xss过滤直接插入HTM
代码 review 规范总结
规范
- 是否配置eslint
- 是否通过eslint检查
- 是否使用git-hopma-cli管理git分支
- 是否线上打包
- 是否使用公共的gitlab-ci配置
- 是否使用多个组件库
接口
- 是否处理网络异常
- 是否对类型做过处理和转换并设置为空时的默认值
- 是否检测数据格式合法性
安全
- 是否未做xss过滤直接插入HTML
- 是否处理CSP
兼容性
- 小程序的API是否做了兼容性和低版本处理
- 是否考虑API的浏览器兼容性
注释
- 是否在重要功能附近添加合适的注释
- 注释是否包含了开发人员信息、开发时间、开发者联系方式以及相关功能说明
- 换位思考,你能根据你的注释推断出下面代码的功能吗
- 代码里是否还存在 TODO
- 可能产生意外情况的地方是否留下说明
代码质量
- 是否有冗余代码(例如:删除或者注释 console.log 避免低端 IE 报错等)
- 变量命名是否有意义而且简短
- HTML标签是否正确嵌套和闭合
- 函数的参数是否过多 (可转化为对象传参,否则一个方法的参数要加大代码的可维护性)
- 是否重复造轮子 (utils、lodash、业务组件库、ui组件库)
- 是否检查数据输入(检测正确的类型,长度,格式和范围)并且进行了编码?
- 变量拼写是否正确
- 函数功能是否内聚 (功能需要单一)
- 是否编写了错误处理逻辑 (比如:阻止继续执行、显示错误信息、记录错误日志和信息等)
- 图片是否压缩
- 是否使用async await
- 定时器是否正确清除
- 轮训是否正确清除
- 事件绑定是否正确清除
- 相同内容是否抽取公共代码
Vue2
- 不需要响应的数据是否注册到data
- props是否传入了对象
Vue3
- computed是否存在非内部变量的赋值操作
- 是否使用scope css或者 css modules
小程序
设计
- 设计是否与已有系统适配
- 是否具有可维护性
- 从抽象角度思考代码是否与已有系统逻辑能够自洽
- 是否考虑过如果发生线上故障,如何做回滚处理?处理什么文件?
- 功能与功能之间是否足够独立?是否设置开关?当某个功能发生故障是否可以通过开关关掉?
数据上报
- api结果是否上报
- 错误是否上报
- 关键路径是否上报