第1章 代码应当易于理解
- 代码的写法应当使别人理解它所需的时间最小化
- 相比于代码行数最小化,把理解代码所需的时间最小化是一个更好的目标
- 代码写得容易理解往往会把它引向好的架构且容易测试,并不会与其他目标有冲突
- 可读性基本定理总是优先于其他任何条例和原则
- 要经常想一想其他人是不是觉得你的代码容易理解
第2章 表面层次的改进
选择专业的词
- 避免使用『空洞』的词;
- 找到更有表现力的词
避免像tmp和retval泛泛的名字(或者要知道什么时候使用它)
- 好的名字应当描述变量的目的或者它所承载的值
在上面的示例中,retval这个名字没有包含很多信息,应该用一个描述该变量的值的名字还代替它,比如:sum_squares,因为这个变量在累加v的平方。 - tmp这个名字只应用于短期存在且临时性为其主要存在因素的变量。
循环迭代器
- 可以使用比i、j、k更贴切的迭代器命名
for (int i = 0; i < clubs.size(); i++)
for (int j = 0; j < clubs[i].memebers.size(); j++)
for (int k = 0; k < users.size(); k++)
if (clubs[i].memebers[k] == users[j])
cout << "user[" << j << "] is in club[" << i << j << "]" << endl;
- 如果想不出更好的名字,那么用个没有意义的名字,像foo,然后继续做别的事,这很容易。但如果你养成习惯多花几秒钟想出个好名字,你会发现你的『命名能力』很快提升。
- 例子一:DISALLOW_EVIL_CONSTRUCTORS > DISALLOW_COPY_AND_ASSIGN
- 例子二:–run_locally > --extra_logging