《编写可读代码的艺术》
标签: 代码能力 读书笔记
第零部分 基本原则
第1章 代码应当易于理解
可读性基本定理: 代码的写法应当使别人理解它所需的时间最小化
- 并不是代码行数越小越好
- 可以适当添加注释
第一部分 表面层次的改进
第2章 将信息装到名字里
- 选择专业的词,例如“get”可以换为“download”或者“fetch”,树中的高度使用“height”等避免使用“size”,选择词语更有表现力,清晰和精确
- 避免使用像“tmp”和“retval”这样泛泛的名字
- ”tmp”只应用于短期存在且临时性为其主要存在因素的变量。
- 要使用这些名字,必须有好的理由。
- 用具体的名字替代抽象的名字(例:DISALLOW_EVIL_CONSTRUCTORS)
- 为名字附带更多信息
- 带单位的值,start_ms/size_mb/max_kbps
- 常见其他附加属性,字符编码/是否加密/是否安全
- 决定名字的长度
- 小作用域中可以使用较短的名字,其他情况使用长名字,对于当代IDE,名字补全很智能
- 省略词和缩写词需要考虑对于新员工是否理解
- 去掉没有用的词语,如coverToString -> toString
- 利用名字的格式来表达含义,不同实体(类/函数/全局变量/局部变量/常量)可以使用不同的实体
第3章 不会误解的名字
这个名字会被别人解读为其他的含义么,filter是指的挑出还是去掉,length是指的字节数还是字符数
- 推荐使用min和max来表示包含极限
- 推荐使用first和last来表示包含范围
- 推荐使用begin和end来表示包含/排除范围
- 给布尔命名需要明确,如read_passwd->need_passwd/is_authenticated,disable_ssl->use_ssl
- 与使用者的期望相匹配,如get表示轻量级访问,size默认复杂度o(1)
第4章 审美
三条原则:
- 使用一致的布局,让读者很快就习惯这种风格
- 让相似的代码看上去相似
- 把相关的代码行分组,形成代码块
使用从审美角度讲让人愉悦的代码更容易
- 重新安排换行来保持一致和紧凑
- 将长代码行替换为方法调用来去掉不规则
- 在需要时使用列对齐,使相似的代码看上去相似
- 使用有意义的顺序,始终如一地使用它,如对象属性处理顺序/构造函数参数顺序等
- 把声明