《代码整洁之道》二之有意义的命名
迪丽瓦拉
2024-05-27 01:49:56
0

1.有意义的命名

1.1 名副其实

取个好名字需要花时间,但是价值远超取名的时间,一旦发现更好的名称就换掉旧的。这么做,读你代码的人都会很开心。

变量名、方法名、类名称需要清晰的告诉别人含义,如果名称需要注释来补充,就是名不副实。

1.2 避免误导

避免使用与本意相悖的词

别用 accountList 来指一组账号,除非它真的是List类型,如果包纳账号的容器并非真的是个List,就会引起错误判断(即便容器就个 List ,最好也别在名称中写出容器类型名)。如果不是,则用accountGroup或者bunchOfAccounts,甚至 accounts 都会好一些。

误导名称真正可怕的例子是用小写字母l和大写字母O作为变量名,尤其在组合使用的时候,因为他们看起来非常像常量零和一。

1.3 做有意义的区分

以数字系列命名(a1、a2、…、aN)是依义命名的对立面。这样的名称纯属误导,完全没有提供正确的信息。

不要讲废话:Variable 一词永远不应当出现在变量命名中,Table 一词永远不应当出现在表名中。 NameString 会比 Name 好吗?

变量 moneyAmount 和 money 没区别,customerInfo 与 customer 没区别。要区分名称,就要以读者能鉴别不同之处的方式来区分。

1.4 使用读得出来的名称

人类擅长记忆和使用单词。如果名称读不出来,讨论的时候就会像个傻鸟。

不要傻乎乎的自造词,使用非恰当的英语词。

1.5 使用可搜索的名称

找WORK_DAYS_PER_WEEK比数字5好找的多。

1.6 类名

类名和对象名应该是名词或者名词短语,不应当是动词。

1.7 方法名

方法名应当是动词或者动词短语

1.8 每个概念对应一个词

给每个抽象概念选一个词,一以贯之。

用了 controller 来表示控制层,就不要用 manager。

不要使用 get 来给多个类中的同种方法命名。

1.9 别用双关语

不要将统一单词用作不同目的。

比如用 add 来计算两个值相加,现在有个新方法要把某一个元素添加进集合,如果也用 add 就是双关语。

相关内容