原文:Variable name

本文翻译了该文章的大致意思,省略了代码示例。

命名原则

  • 代码是给人看的,而不是给机器看的
  • 不要让别人思考代码想做什么,命名应该传达出作者的真正意图
  • 代码审查是件异常繁重的工作,所以变量名应该尽可能简洁,使人将精力放在代码上
  • 相对于注释,我们更喜欢好的名字,但这并不能取代所有的注释

实用方针

  1. 不要在名字里放数据类型
    • 将变量名改为复数形式,而不是加入类型
    • 如果你要加入一些标量类型(int,String,char),确保你能解释清楚这个变量是什么,派生这个变量你做了什么转化(例如变为小写)
  2. 多数情况下使用日耳曼命名
    • 浅显易懂,不需要太多的先验知识
    • 足够特定,不会混淆
    • 对于通用的方法,使用通用的命名即可
  3. 简单的注释体现在变量名上
    • 减少代码审核工作者的压力
    • 如果这个变量使用的时候中间隔了很远,那么审核者不需要向前翻阅注释
  4. 避免陈词滥调
    • 类似于这些用烂的命名应该避免使用:val,value,result,res,retval,tmp,temp,count,str,tempString,intStr
  5. 当意思很明确的时候,使用约定俗成的命名
    • 跟上面的陈词滥调不同,这里说的是一些被广泛认可的命名
    • 对于循环直接使用i,j,k
    • 对于极限或数量,使用n
    • 对于例外使用e
  6. 当使用范围很小的时候,可以用短命名(一到两个字母)
    • 5行以内
    • 对该变量没有更合适的名字
    • 读者在该情况下无法记住更多的信息
  7. 删掉没多少用处的一次性变量(OTVs)
    • 对于那些只为了传递结果的垃圾变量,尽量删除
  8. 使用短OTVs来打破长句子
    • 当需要调用很多次中间结果的时候,可以使用短OTVs来增强可读性
  9. 使用短OTVs打破复杂的表达方式
    • 理由同上
  10. 使用长OTVs来解释不易理解的代码
    • 比如,你不得不调用别人的代码,但是别人用的函数名不易理解