1.代码应当易于理解
- 好代码的标准
1.代码的写法应当使别人理解它所需的时间最小化
2.精简你的代码
2.把信息装到名字里
-
选择专业的名词
eg: get/fetch
-
避免泛泛的名词
eg: foo/tmp
-
具体代替抽象
-
使用前/后缀给名字附带信息
eg: start_ms
-
决定名字的长度
1.作用域大的用具体一点的名字
2.小作用域可以用短名字
-
利用名字的格式来表达含义
3.不会误解的名字
核心思想: 这个名字会被别人解读成其他含义吗
1.当要定义一个值的上下限制的时候可以用,max/min, start/stop, beigin/end之类的词
2.定义布尔值可以使用is/has这类词
4.审美
- 使用一致的布局,让读者很快就能习惯这种风格
- 让相似的代码看上去相似
- 把相关的代码行分组形成代码块
- 一致的代码分格比“正确”的代码风格更重要
5.该写什么样的注释
核心思想:不要为那些从代码本身就能快速推断的事实写注释,一个好的名字比备注更主要。
- 什么不需要注释
1.能从代码本身快速推断的事实
2.用来粉饰烂代码(例如蹩脚的名字)=>应该把代码改好
- 你应该记录下来的想法
1.对于为什么代码写成这样的理由
2.代码中的缺陷
3.常量
4.预料到哪些部分会让读者迷惑
5.用注释来总结代码块
6.写出言简意赅的注释
1.让注释保持紧凑
2.避免使用不明确的代词
3.简单的描述函数的行为例如传参/**Function(/**arg*.../)*/
4.申明代码高层次的含义而非细节
7.把控制流变得易读
1.在写一个比较时,把改变的值写在左边,把稳定的值写在右边
2.用正向思维来处理问题
3.尽量少用三木运算符,do/while,goto这类会导致代码可读性变差的方法
4.避免深嵌套
8.拆分超长的表达式
关键思想:把超长的表达式拆分成更容易理解的小块
9.变量与可读性
- 减少变量
- 减小每个变量的作用域
- 只写一次的变量更好
10.抽取不相关的句子
特定的代码干特定的事情,尽量不要让与业务无关的代码占大量的篇幅,可以提出工具函数,简化接口代码等
11.少写代码
1.质疑和拆分你的需求呢
2.保持小的代码库,创建越多越好的工具来较少重复代码
3.熟悉周边好用的工具库