变量命名应该注意些什么?
一个变量名字应该告诉你Why it exsits
, What it does
, How it used
.
如果一个变量需要一个注释, 那么这个名字并没有揭示意图.
使用揭示意图的名字
int d; // elapsed time in days
vs
int elapsedTimeInDays;
当心那些变化很小的名称
阅读XYZControllerForEfficientHandlingOfStrings
和XYZControllerForEfficientStorageOfStrings
.
你花了多长时间才观察到他们之间的差异?
如果你有一个支持搜索和自动补全的IDE的话, 这个规则会改善你的搜索时间
使用可发音的名字
class DtaRcrd102 {
private Date genymdhms;
private Date modymdhms;
}
vs
class Customer {
private Date generationTimestamp;
private Date modificationTimestamp;
}
使用可搜索的名字
如果一个变量或者常量可能在多个地方被用到, 那么很有必要给他一个方便搜索的名字.
for (int j = 0; j < 34; j++) {
s += (t[j] * 4) / 5;
}
vs
int realDaysPerIdealDay = 4;
const int WORK_DAYS_PER_WEEK = 5;
int sum = 0;
for (int = 0; j < NUMBER_OF_TASKS; j++) {
int realTaskDays = taskEstimate[j] * realDaysPerIdealDay;
int realTaskWeeks = (realdays / WORK_DAYS_PER_WEEK);
sum += realTaskWeeks;
}
上面这些至少在搜索方面是有用的. 有意图的代码名称可能会让函数更长, 但是请注意WORKS_DAYS_PER_WEEK
比5
好搜索的多.
Reference
https://medium.com/coding-skills/clean-code-101-meaningful-names-and-functions-bf450456d90c