面向过程
- 代码重复率。
- 圈复杂度。算法设计有问题。
- 大文件。复杂功能没做拆分。
用代码扫描工具可以客观的找出这些问题。
面向结果
- Bug 率。可以按照不同的维度
- 代码行数: 千行 Bug 率。
- 用户故事。
- 服务不可用时间。一般算百分比,或按月算。
- Bug 平均修复时间(MTTR)。
- Bug 重新打开率。
代码坏味道
好的代码是高内聚,低耦合的,是健壮的,命名是合适的。
- 大量重复代码。
- 圈复杂度高。
- 代码颗粒太大。太长的函数,类,文件。
- 不合理的命名。
- 命名和实际的意思不匹配。
- 在没有上下文的情况下,命名太过宽泛。如 temp, fetch。
- 名称过长。
- 乱编的缩写。
- 条件分支过多。
- 函数参数超过三个。
- 全局污染。JavaScript中改原生函数,全局变量。CSS页面,组件中样式没有做隔离。
- 数据管理混乱。没做好设计,像一团乱麻。