一个好的命名应遵循如下几条规则:
- 一旦发现了有更好的名称,就替换掉旧的。
- 名称应该告诉读者,它为什么会存在,它做什么事,应该怎么用,如果名称需要注释来补充,那就不算是名副其实。
- 避免使用专有名词,或与本意相悖的词。
- 提防使用外形相似度较高的名称。
- 做有意义的区分,以数字命名是其对立面(如a1,a2,a3,...)。
- 避免出现同义词(如product,productInfo,productData)。
- 使用读得出来的名称,而不是各种单词的一系列缩写。
- 使用可搜索的名称,便于后续维护。
- 避免使用编码,特定的编码会让后来者不知所云。
- 把类和函数做的足够小,以消除对前缀的需要。
- 类名和对象名使用名词或名词短语;函数名使用动词或动词短语。
- 不要在命名时抖机灵。
- 对于某一抽象概念,使用唯一的一个词,并一以贯之。比如(get,fetch,retrieve)。
- 函数名称的风格要保持一致,且独一无二。
- 避免将同一单词用于不同目的。比如将add同时用于加法计算和数组追加元素。
- 很少有名称是能够自我说明的——多数都不能。反之,需要用命名良好的类、函数、或命名空间来防止名称,给读者提供语境,如果没有这么做,给名称添加前缀是不得已的做法。
- 语境的增强也让算法能够通过分解为更小的函数而变得更为干净利落。一个简洁明了的函数只做一件事。
- 只要短名称足够清楚,就比长名称要好,别给名称添加不必要的语境。