1 为什么
- 长的类名会使开发者不易声明该类型的变量。
- 长的方法命名会使它变得晦涩难懂.
- 长的变量命名不利于代码重用,导致过长的方法链。
2 怎么解决
2.1 目标
- 清晰:你要知道该命名与什么有关
- 精确:你要知道该命名与什么无关
2.2 原则
一个好的命名能够在阅读者的脑海中描画出一幅图画。而将某变量命名为”manager”并不能向读者传达任何有关该变量是做什么的信息. 它是用来做绩效评估的吗? 它是管理加薪的吗?
(a) 命名中无需含有表示变量或参数类型的单词
- 类型说明加入到变量名中是多余的. 我们应该舍弃匈牙利命名法
- 对于集合来说,最好使用名词的复数形式来描述其内容, 而不是使用名词的单数形式来描述. 如果开发者更在乎集合中存储的内容, 那么变量命名应当反映这一点。
- 如果在之后的开发中觉得该命名会造成冲突或不明确,可以添加些修饰词来完善它。反之,如果一开始就取了一个很长的命名,你是不可能在之后重新回来简化它的
(b) 省略命名中可以从上下文获取的单词
- 类中的方法/属性和方法中的变量,都是存在在上下文中的,无需重复。
- 一个命名嵌套的层次越多, 它就有更多的相关的上下文,也就更简短。换句话说,一个变量的作用域越小,命名就越短。
(c) 省略命名中无任何含义的单词
- 含无任何含义的单词的命名,一些开发者喜欢在命名中添加一些看起来有点严肃的单词。我猜可能他们觉得这样做可以让他们的代码显得重要,或者说让他们觉得自己更重要。
- 有一些词语并没有实际意义,只是一些套话。比如:data, state, amount, value, manager, engine, object, entity和instance。