首页/开发/代码质量与评审速查/评审检查项:命名与可读性
代码评审64 条

评审检查项:命名与可读性

命名检查:名称是否表达意图与领域含义、是否与代码库既有术语一致、名称长度与作用域是否匹配、控制流是否一眼可读。

命名检查看什么

命名是最便宜的文档:名字是否表达意图、是否与领域术语和既有接口一致、名称长度是否与作用域匹配、控制流能否一眼读懂。命名问题不影响编译,却直接影响后来人的理解成本,因此值得评审时花一点注意力。

基本信息

检查对象类名、函数名、变量名、参数名、配置项与文件名
判断标准未来读者能否快速理解,而不是是否符合个人口味
一致性与领域术语、既有 API 命名保持一致
长度原则短作用域可用短名,长作用域需要更描述性的名称

逐项检查什么

  • 名称说明是什么或做什么,而不是怎么实现。
  • 与领域术语、既有接口命名保持一致,避免同义词混用。
  • 短作用域可用短名,长作用域需要更描述性的名称。
  • 可读性:清晰的直白写法优于炫技写法,三元嵌套与位运算要谨慎。
  • 重构之后名称是否同步更新,别让名字描述旧行为。

常见命名问题

问题表现影响
缩写堆砌gtUsrIdx后来人必须反查含义
名实不符重构后名称未同步按名字理解会得到错误结论
同义词混用一处叫 config,另一处叫 settings搜索与替换都不可靠
布尔语义不清flag、status 之类含糊名条件判断读起来要靠猜

命名意见怎么提

  • 给出替代名字而不只是说「这个名不好」:具体方案比抽象评价有用。
  • 说明理由:读者会在哪里误解,或与哪个既有术语冲突。
  • 非阻塞的小改进标上 nit:命名偏好不应卡住合并。
  • 同一术语反复出现时,先在团队里统一说法,再改代码。
命名分歧别升级为品味之争:以「未来读者能否快速理解」为准绳。
自检法:遮住定义只看调用处,能否推断参数与返回值含义;需要跳回去看才知道时,名称还需要更明确。

易错点

  • 用缩写堆砌名称:后来人必须反查含义,阅读成本持续累积。
  • 重构后名称未同步:名实不符比难读更危险,容易导致错误假设。
  • 同一概念多个叫法:跨模块沟通与代码搜索都被拖慢。
  • 把命名偏好当阻塞项:真正的正确性与可读性问题被淹没。

数据来源与参考

  • Google Engineering Practices · What to look for in a code review(Naming)
  • 《Clean Code》命名章节
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌