code review - pod4g/tool GitHub Wiki

CR问题分类

代码CR过程中,发现的问题,可以分为3级:P1P2P3,分别对应严重普通轻微

P1级问题

  1. 导致页面卡顿
  2. 导致页面卡死
  3. 导致App崩溃
  4. 白屏
  5. 数值计算错误
  6. 逻辑错误
  7. 未防御(判空)

P2级问题

  1. 影响页面加载速度的程序实现
    • 可以用更短更优雅的算法实现,就不要用臃肿的代码
  2. 数据管理不合理,造成维护困难
    • 数据的增删改查变形等操作,要遵循单一职责
  3. 影响页面性能
    • 在for循环中进行操作,而这个操作其实是可以提取到循环外的
  4. JS功能划分不合理,增加开发工作量
    • 一个文件或者方法过大,没有拆分
    • 一些类似代码,在多个地方使用,没有提成一个方法
  5. CSS编写混乱

P3级问题

  1. 不符合业界通用代码规范
  2. 缺少注释
    • 关键逻辑点,需要注释说明
    • 可能造成困扰或歧义的地方,需要注释说明
    • 每个字段,需要注释说明其含义
    • magic number 或者 其它写死的字面量,需要注释说明为什么要这么写
  3. 变量名起的无意义或者有歧义
    • let a, b, c, _haha

如何界定?

在CR中,我们发现了有问题的代码以后,除了严重问题(P1级)以外,另外两级,其实我们是可以具体问题具体分析的

例如下面的代码:

let obj = {name: '云崇', age: 28}
for (let prop in obj) {
  console.log(`${prop}:${obj[prop]}`)
}

这段代码的问题出在什么地方呢?