2.有意义的命名
选个好名字要花时间,但剩下来的时间比花掉的多。注意命名,而且一旦发现有更好的名称,就换掉旧的。读你代码的人(包括你自己)会更开心。
程序员多半压根不会看你的详细注释,甚至不看该类的方法列表就直接看名字挑一个对象。
如果程序员只是为了满足编译器或解释器的需要而写代码,就会制造麻烦。
以数字系列命名(a1,a2,……aN)是依义命名的对立面。这样的名称纯属误导——完全没有提供正确的信息;没有提供导向作者意图的线索。
Info和Data就像a、an和the一样是意义含混的废话。
Variable一词永远不应当出现在变量命名中。Table一词永远不应当出现在表名中。
窃以为单字母名称仅用于短方法中的本地变量。名称长短应与其作用域大小相对应。
避免使用匈牙利语标记法(Hungarian Notation, HN)。例如变量phoneString的类型变化成 int 时会造成误解。
聪明的程序员和专业的程序员之间的区别在于,专业的程序员了解,明确是王道。专业程序员善用其能,编写其他人能理解的代码。
类名和对象名应该是名词或名词短语,不应当是动词。
方法名应当是动词或动词短语。
给每个抽象概念选一个词并且一以贯之。例如:fetch、get选一个定下来,不要掺杂着用。
避免使用双关语。例如:add可能指insert或者append,应当转而直接用insert或append。
在一个模块内,没必要使用GSDAccountAddress之类的命名,直接用Address即可。
提要
- 名副其实
- 避免误导
- 做有意义的区分
- 使用读得出来的名称
- 使用可搜索的名称
- 避免使用编码
- 匈牙利语标记法
- 成员前缀
- 接口和实现
- 避免思维映射
- 类名
- 方法名
- 别扮可爱
- 每个概念对应一个词
- 别用双关语
- 使用解决方案领域名称
- 使用源自所涉问题领域的名称
- 添加有意义的语境
- 不要添加没用的语境