编写可读代码的艺术

第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
    在这里插入图片描述
    在这里插入图片描述
用具体的名字代替抽象的名字
使用前缀或后缀来给名字附带更多信息
决定名字的长度
利用名字的格式来表达含义
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值