代码整洁之道笔记 - 第二章 有意义的命名

命名的几个规则

1.名副其实

 变量、函数或类的命名应该囊括了所有的大的问题。它该告诉你,它为什么会存在,它做什么事,应该怎么用。

 如果名称需要注释来补充,那就不算是名副其实。

2.避免误导

 程序员必须避免留下掩藏代码本意的错误线索(如UNIX,axi, sco)。

 应当避免使用与本意相悖的词。

 提防使用不同之处较少的名称,否则容易误导。避免使用o和l,与0和1太像了。

3.做有意义的区分

 光是添加数字系列或是废话远远不够,即便这足以让编译器满意。如果名称必须相异,那其意思也应该不同才对。

 如Product, ProductInfo, ProductData,Info和Data就是废话。

  NameString不会比Name更好些。Table一词永远不应当出现在表名中。Variable一次永远不应当出现在变量名中。Customer与CustomerObject又有什么区别呢?

4.使用读的出来的名称

 不要随意的使用简写缩写,很容易出笑话,应该更明确功能。

 如genymdhms远不如写成generationTimestamp。

5.使用可搜索的名称

 名称不是越减短越好。单字母和数字常量很难在一大篇文字中找出来。

 使用能表达意图的名称,看似拉长了函数代码,但是这种能表达意图的代码却比数字或者字母更容易找到。

4.避免使用编码

 1)Java程序员不需要类型编码,Java是强类型的语言,增加类型字符,纯属多余,增加了修改变量、函数或类的名称或类型的难度。并且还增加了阅读代码的难度。并且增加了误导读者的可能性。

 2)不必使用前缀来标明成员变量。应当把函数或者类做的足够小,消除对成员前缀的需要。

 3)接口和实现的命名,接口不要用I(terface)开头,我们不需要让使用者知道这是一个接口。

5.避免思维映射

 明确是王道。不应当让读者在闹钟把你的名称翻译为他们所熟知的名称。

6.类名和对象名应是名词或名词组成的短语。

7.方法名应当是动词或动词短语。

8.别扮可爱,使用一些好玩但无益于代码可读性的词。

9.每个概念对应一个词,如果使用了get,就不要在其他相似的功能上再使用fetch,retrieve等。

 函数命名应当独一无二,并且保持一致。

10.别用双关语

11.使用解决方案领域的名称,也就是程序员能够懂得名称。

12.使用源自所设计问题领域的名称,如果不能使用程序员所熟系的术语来给手头的工作命名,这样负责维护代码的程序员就可以去请教该领域的专家了。

13.添加有意义的语境。很少有名称是你能够自我说明的--多数都不能。反之,你需要用良好的命名、函数或者名称空间来放置名称,给读者提供语境。

  假想有名为firstName,lastName,street,houseNumber,city,state和zipcode的变量。

当它们放在一起的时候,很明确构成了一个地址。不过,假使只在某个方法中看见孤零零的一个stage变量,我们就会无法确定它是地址的某一个部分了。

  可以添加前缀addr,以此提供语境。至少读者会明白这些变量是某个更大结构的一部分。

14.不要添加没用的语境,名称足够清楚,就比长名称更好。

 








评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值