《代码整洁之道》总结一之有意义的命名

写出整洁代码的原因:第一:你是个程序员;第二:你想成为更好的程序员。

细节之中自有天地,整洁成就卓越代码。

对于代码整洁性缺乏足够重视的开发者,是职业素养与基本功的双重缺陷。

稍后等于永不。

花时间保持代码整洁不但有关效率,还有关生存。

制造混乱无助于赶上期限。混乱只会立刻拖慢你,叫你错过期限。赶上期限的唯一方法---------做得快的唯一方法-----------就是始终尽可能保持代码整洁。

不要重复代码,只做一件事,表达力,小规模抽象。

消除重复和提高表达力让代码更加整洁。

让营地比你来时更干净


一、有意义的命名

1、名副其实

如:int d; //消逝的时间,以日记

应选择指明了计量对象和计量单位的名称

int elapsedTimeInDays;

int daysSinceCreation;

int daysSinceModification;

int fileaAgeInDays;


2、避免误导

应避免使用与本意相悖的词。如hp,aix等都不应该用作变量名,因为是java平台的专有名称。


3、做有意义的区分

a1、a2,.......aN这样的名称纯属误导------------完全没有提供正确的信息,没有提供导向作者意图的线索。

如果缺少明确的约定,变量moneyAmount与money没区别,customerInfo与customer没区别。要区分名称,就要以读者能鉴别不同之处的方式来区分。


4、使用读得出来的名称

人类长于记忆和使用单词,命名应恰当地使用英语词。


5、使用可搜索的名称。

单字母名称和数字常量有个问题,就是很难在一大篇文字中找出来。长名称胜于短名称,搜得到的名称胜于用自造编码代写的名称。名称长短应与其作用域大小相对应。


6、避免使用编码

把类型和作用域编进名称里面,只是增加了解码的负担。


7、匈牙利语标记法

Fortran语言要求首字母体现出类型,BASIC早期版本只允许使用一个字母加上一位数字。匈牙利标记法将这种态势愈演愈烈。现在编译器记得并强制使用类型,没有必要在名称中加入数据类型。


8、成员前缀

不必用m_前缀来标明成员变量。


9、接口和实现

字母I被用到接口名,就是废话。


10、避免思维映射

不让读者在脑中把你的名称翻译为他们熟知的名称。如循环变量名可以命名为i,j,或k,但是千万别用字母l。聪明程序员与专业程序员之间的区别在于,专业程序员了解,明确是王道。


11、类名

类名和对象名应该是名词或名词短语,如Customer、AddressParser,而不应该是动词。


12、方法名

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


13、别扮可爱

在代码中经常体现为使用俗语或俚语。如别用whack()来表示kill()。whack:美俚,劈砍。


14、每个概念对应一个词

在多个类中使用fetch、retrieve和get来为同种方法命名,就记分不清是哪个类中的哪个方法。还有,在同一队代码中有controller,又有manager,还有driver就会令人困惑。DeviceManager与ProtocolManager又有什么根本性的区别?为什么不全用controllers或managers?他们都是driver吗?这种名称让人觉得这两个对象是不同类型的,也分属不同的类。


15、别用双关语

同一术语用于不同概念,基本上就是双关语了。如,在多个类中都有add方法,该方法通过增加或连接两个现存值来获得新值。假设写个心累,该类中有一个方法,把单个参数放到群集(collection)中。改把这个方法叫做add吗?这样做貌似和其他add方法保持了一致,但是实际上语义却不同,应该用insert或append之类的词来命名才对。把该方法命名为add,就是双关语了。


16、使用计算机领域名称。

记住只有程序员才会读你的代码。所以尽管用那些计算机科学的术语、算法名、模式名、数学术语吧。依据问题所涉及的领域来命名可不算是聪明的做法。


17、使用源自所涉及问题领域的名称

如果不能用程序员所熟悉的术语来给手头的工作命名,就采用从所涉问题领域而来的名称吧。至少,负责维护代码的程序员就能去请教领域专家了。


18、添加有意义的语境

设想你有名为firstName、lastName、street、houseNumber、city、state和zipcode的变量,搁一块,很明确构成了一个地址。但是如果只是孤零的一个state变量呢?你会理所当然推断那是某个地址的一部分吗?可以添加前缀addrFirstName、addrLastName、addrState等,以此提供语境。


19、不要添加没有用的语境

只要名称足够清楚,就要比长名称好。别给名称添加不必要的语境。如在名为Gas Station Deluxe的应用中,给每个类都添加GSD前缀就不好。搜索时,会显示系统中全部类的列表。






  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值