代码整洁之道(一)

一、有意义的命名

1.要名副其实,不要模糊,int elapsedTimeInDay好于int d。

2.避免误导,避免用小写字母l和大写字母O做变量,误导1/0;不要用accountList指一组账号,除非它是一个List类型,用accounts较好;避免使用多个区分较小的词做长名字,易看错。

3.做有意义的区分,src/dst好于a1/a2;不要同时用ProductInfo和ProductData,info和data类似a/an/the难区分;variable/class/table等不要出现于于变量名/类名/表名中,没意义。

4.使用读得出来的名称,用英文不要用自造词,如用generationTimestamp不用genmdhms表示生成时间戳。

5.使用可搜索的名称,单字母名称和数字常量很难在大篇文章中找出来,MAX_CLASSES_PER_STUDENT比数字7好找;名称长短应该和作用域大小相对应。

6.避免使用编码,匈牙利命名不用加类型,尽量消除成员前缀,String description优于m_des。

7.避免思维映射,ijk多数表示循环计数器,其他地方尽量少用。

8.类名和对象名,用名字或名词短语,如Customer/WikiPage/Account/AddressParser,避免Manager/Processor/Data/Info这些。

9.方法名,用动词或动词短语,如postPayment/deletePage/save等,或加get/set/is前缀。

10.每个概念对应一个词,fetch/get/retrieve均使用get,controller/manager/driver均使用controller。

11.添加有意义的语境,addrFirstName/addrLastName/addrState优于firstName/lastName/state,但最好用类表示。

二、注释

1.注释的恰当用法是弥补我们用代码表达意图时遭遇的失败,与其花时间写注释,不如去清洁代码,尽量减小注释量。

2.用代码阐述,通过创建一个与注释所言同一事物的函数即可

if(emplyee.isEligibleForFullBenefits()),好于下面两行

//check to see if the employee is eligible for full benifits

if((employee.flags&&HOURLY_FLAGS)&&(emplyee.age>65))

3.哪些是好注释

(1)法律信息,有时公司要求编写与法律有关的注释,作为标准注释,放在每个源文件的开头,IDE可以自动卷起这些注释。

(2)提高信息的注释,这类一般可以通过变量或函数重命名避免。

(3)有意图的解释,如This is the best attempt to get a race condition by creating a large number of threads.

(4)阐释,把一些晦涩难明的参数或返回值翻译成可读的形式,正确性有风险。如assertTrue(a.compareTo(b)==-1)//a<b

(5)警示,如Don't run unless you have some time to kill。也可以用@Ignore属性关闭测试用例,如@Ignore(“take too long to run!”)

(6)TODO注释,解释应该做但由于某些原因没有完成的工作,应该定期查看删除。

(7)放大,强调一些不合理之物的重要性。

(8)公共API中的javadoc,文档,但也可能会误导或提供错误信息。

4.哪些是坏注释

(1)喃喃自语,废话注释,误导性注释

(2)函数头以及简单函数头部位置的注释,

(4)日志式注释&&归属和署名,如修改纪录,修改作者修改时间等,因为有代码控制系统,这类代码应全部删除。

(5)位置标记,少用标记栏,只在特别有价值的地方用。如//Action///

(6)右括号后面的注释,对于含有深度嵌套结构的长函数有用,但会给小函数带来混乱。

(7)没用的代码,直接删掉而不是注释掉。

(8)HTML注释

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值