编写可读代码的艺术

第1章 代码应当易于理解

  • 代码的写法应当使别人理解它所需的时间最小化
  • 相比于代码行数最小化,把理解代码所需的时间最小化是一个更好的目标
  • 代码写得容易理解往往会把它引向好的架构且容易测试,并不会与其他目标有冲突
  • 可读性基本定理总是优先于其他任何条例和原则
  • 要经常想一想其他人是不是觉得你的代码容易理解

第2章 表面层次的改进

选择专业的词

  • 避免使用『空洞』的词;
    编写可读代码的艺术_第1张图片
  • 找到更有表现力的词
    编写可读代码的艺术_第2张图片

避免像tmp和retval泛泛的名字(或者要知道什么时候使用它)

  • 好的名字应当描述变量的目的或者它所承载的值
    编写可读代码的艺术_第3张图片
    在上面的示例中,retval这个名字没有包含很多信息,应该用一个描述该变量的值的名字还代替它,比如:sum_squares,因为这个变量在累加v的平方。
  • tmp这个名字只应用于短期存在且临时性为其主要存在因素的变量。
    编写可读代码的艺术_第4张图片

循环迭代器

  • 可以使用比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;

编写可读代码的艺术_第5张图片

  • 如果想不出更好的名字,那么用个没有意义的名字,像foo,然后继续做别的事,这很容易。但如果你养成习惯多花几秒钟想出个好名字,你会发现你的『命名能力』很快提升。
  • 例子一:DISALLOW_EVIL_CONSTRUCTORS > DISALLOW_COPY_AND_ASSIGN
    编写可读代码的艺术_第6张图片
  • 例子二:–run_locally > --extra_logging
    编写可读代码的艺术_第7张图片
    编写可读代码的艺术_第8张图片

用具体的名字代替抽象的名字

使用前缀或后缀来给名字附带更多信息

决定名字的长度

利用名字的格式来表达含义

你可能感兴趣的:(代码规范)