01.有意义的命名

一. 名副其实:
变量、函数或者类名,应当明确,如果需要靠注释来解释补充,那就不是名副其实。
例如:
int d; //消逝的时间,以日计
这里的d什么也没说明。没有引起时间消逝感,更别说以日计了。我们应该选择指明了计量对象,和计量单位的名称:
int elapsedTimeInDays;
int fileAgeInDays;

选择体现本意的名称能让人更容易理解和修改代码。

二.避免误导:
别用accountList来命名一组账号,List对程序员来讲有特殊的意义,会引起错误的判断。
所以用accountGroup 或 bunchOfAccounts,甚至直接用accounts都会好些。
提防使用不同之处较小的名称。想要区分模块某处的 XYZControllerForEfficientHandlingOfString
和 XYZControllerForEfficientStorageOfString,会花很长时间,因为外形太相近了。

三.做有意义的区分:
以数字系列命名(a1,a2,…aN)是以义命名的对立面。这样的命名纯属误导——完全没有提供正确信息。

废话是另一种没有意义的区分。例如:
getActiveAccount();
getActiveAccounts();
getActiveAccountInfo();
程序员怎么知道该调用哪个函数呢?

要区分名称,就要以读者能鉴别不同之处的方式来区分。

四.使用可以读的出来的名称:
如果名称读不出来,讨论的时候就会像个傻鸟。
比较:
class DtaRcrd102{
private Date genymdhms;
private Date modymdhms;
private final String pszqint = “102”;


}

class Customer{
private Date generationTimestamp;
private Date modificationTimestamp;
private final String recordId = “102”;


}

五.使用可以搜索的名称:
单字母名称和数字常量有个问题,就是很难在一大篇文字中搜索出来。
找 MAX_CLASSES_PER_STUDENT很容易,但是想找数字7或者字母e可就难多了。

六.避免使用编码:
接口和实现 ISharpeFactory 远远不如 SharpeFactoryImp

七.避免思维映射:
不要让读者在脑中把你的名称翻译为他们所熟知的名称。
单字母变量名称就是个问题。比如 i ,如果你能指望读者将其理解为 r 代表不包含主机名的小写版url的话。
仅仅是因为有了a 和b,就要取名为c,是不合理的。

专业的程序员明白, 明确是王道 。编写其他人能理解的代码。

八.类名:
类名和对象名应该是名词或名词短语,如Customer、Acoount。
避免使用Manager、Processor、Data或Info这样的类名。
类名不应为 动词。

九.方法名:
方法名应该为动词或动词短语,如postPayment、deletePage或sava。
属性访问器、修改器和断言应该根据其值命名,并加上get、set、is前缀。

十.每个概念对应一个词:
给每个抽象概念选一个词,并一以贯之。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

云上凯歌

好活,当赏!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值