代码整洁之道读书笔记(一) -- 有意义的命名

名副其实
//名称命名,指明计量对象和计量单位的名称
int elapsedTImeInDays;
int daysSinceCreation;
int daysSinceModification;
int fileAgeInDays;
/**
* 命名不模糊,让人理解代码含义
*
* @return
*/
public List< int []> getFlaggedCells() {
List< int []> flaggedCells = new ArrayList<>();
for ( int [] cell : gameBoard) {
if (cell[STATUS_VALUE] == FLAGGED)
flaggedCells.add(cell);
}
return flaggedCells;
}

避免误导
避免留下错误信息:
hp,aix,sco不能做变量名,其是unix平台的专有名称;
accountList :不要用来指一组账号,除非是list类型;可使用accountGroup, bunchOfAccounts, accounts;

有意义的区分
以数字系列命名--未提供正确信息
废话--Product类,和ProductInfo,PruductData类,无法区分意义

使用读的出来的词命名
private Date generationTimestamp;//yes
ps
private Date genymdnms;//no

使用可搜索的名称
MAC_CLASSED_PRE_STUDENT//yes
ps
7//no

成员前缀
private String m_dec;//no
ps
private String description;//yes

类名
类名和对象名应该是名词或名词短语,不应当是动词.
如Customer,Account,避免使用Data,Info,Manager

方法名
方法名应该是动词或动词短语
如deletePage,postPayment,save
属性访问器,修改器和,根据其值命名,根据javaBean标准加上get,set,is
如setName,getName,isPosted()

每个概念选一个词,并贯彻始终

别用双关语

添加有意义的语境
比如:firstName,lastName,street,houseNumber,city,这些变量很明确可以构成一个地址Address

猜你喜欢

转载自blog.csdn.net/tingsky9985/article/details/78502240