名副其实
//名称命名,指明计量对象和计量单位的名称
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