分享

命名的艺术(二)

 非非爱读书 2022-04-11

1、使用完整读出来的名称

人们的大脑是善于记忆和读写单词的。如果不善加利用,就是一种浪费。

例如通常的java程序中,对日期格式化的定义,ymdhis,这样的单词非但不易理解,更在交流时让对方产生困惑。再给新开发者解释变量的意义的时候,他们总是傻乎乎的自造词,并不是恰当的英语词语。

比较一下这两对词语:


calss DtaRcrd{

    private Date genymdhis;

    private Date modymdhms;

}

calss Customer{

    private Date generationTimestamp;

    private Date modifycationTimestamp;

}


这样的读起来的话,看起来还是很正常了吧,生成时间戳(generationTimestamp)。

2、使用可搜索的名称

单字母名称和数字常量有个大问题,就是即使我们使用ide进行搜索的时候,很难将它在一大篇文字中找出来。

找到MAX_STUDENT_PER_STUDENT很容易,但是想找到a,ui就相当的麻烦了,因为那样他可能是某段文字或者某个单词的一部分,出现在因不同意图而采用的各种表达式中。

同样的,e也不是个便于搜索的好变量名。它是英文中最常见的字母,在每个程序每个子母中都可能会出现。由此可见长名称胜于短名称。

比较一下下面的代码。


for(int j = 0 ; j< 34 ; j++){

    s += (t[j]*4)/5;

int realDayPerIdealDay = 4;

const int WORK_DAYS_PER_WEEK = 5;

int sum =0;

for(int j = 0 ; j < NUMBER_OF_TASKS; j++){

    int realTaskDays = taskEstimate[j] * realDaysPerIdealDay;

    int realTaskWeeks = (realdays / WORK_DAYS_PER_WEEK);

    sum += realTaskWeeks ;

}


采用能表达意图的名称,貌似拉长了函数代码,但要想想看,WORK_DAYS_PER_WEEK比数字5好找的多,而列表中也只剩下了体现作者意图的名称。

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约