代码整洁之命名

1. 名副其实

变量、函数或类的名称应该已经答复了所有的大问题。它该告诉你,它为什么会存在,它做什么事,应该怎么用。如果名称需要注释来补充那就不算是名副其实。

2. 避免误导

程序员必须避免留下掩藏代码本意的错误线索。应当避免使用与本意相悖的词。例如,hp 、aix 和sco 都不该用做变量名,因为它们都是UNIX 平台或类UNIX 平台的专有名称。
别用accountList 来指称一组账号,除非它真的是List 类型。List 一词对程序员有特殊意义。如果包纳账号的容器并非真是个List, 就会引起错误的判断 。所以,用accountGroup 或bunchOfAccounts, 甚至宜接用accounts 都会好一些。

3. 类名

类名和对象名应该是名词或名词短语,如Customer 、WikiPage 、Account 和AddressParser 。避免使用Manager、Processor 、Data 或Info 这样的类名。类名不应当是动词。

4. 方法名

方法名应当是动词或动词短语,如postPayment 、deletePage 或save 。属性访问器、修改器和断言应该根据其值命名,并依Javabean 标准 加上get 、set 和is 前缀。

5. 每个概念对应一个词

给每个抽象概念选一个词,并且一以贯之。例如,使用fetch 、retrieve 和get 来给在多个类中的同种方法命名。你怎么记得住哪个类中是哪个方法呢?很悲哀,你总得记住编写库或类的公司、机构或个人,才能想得起来用的是哪个术语。否则,就得耗费大把时间浏览各个文件头及前面的代码。

6. 添加有意义的语境

很少有名称是能自我说明的,反之,你需要用有良好命名的类、函数或名称空间来放置名称,给读者提供语境。如果没这么做,给名称添加前缀就是最后一招了。
设想你有名为firstName 、IastName 、street、houseNumber、city、state 和zipcode 的变量。当它们搁一块儿的时候,很明确是构成了一个地址。不过,假使只是在某个方法中看见孤零零一个state 变量呢?你会理所当然推断那是某个地址的一部分吗?
可以添加前缀addrFirstName 、addrLastName 、addrState 等,以此提供语境。至少,读者会明白这些变量是某个更大结构的一部分。当然,更好的方案是创建名为Address 的类。这样,即便是编译器也会知道这些变量隶属某个更大的概念了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值