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即可。


提要

  • 名副其实
  • 避免误导
  • 做有意义的区分
  • 使用读得出来的名称
  • 使用可搜索的名称
  • 避免使用编码
    • 匈牙利语标记法
    • 成员前缀
    • 接口和实现
  • 避免思维映射
  • 类名
  • 方法名
  • 别扮可爱
  • 每个概念对应一个词
  • 别用双关语
  • 使用解决方案领域名称
  • 使用源自所涉问题领域的名称
  • 添加有意义的语境
  • 不要添加没用的语境

results matching ""

    No results matching ""