让代码比你来时干净
一、有意义的命名
- 变量、函数或者类的名称应该告诉你它为什么存在,它做什么事情,应该怎么用。
- 要名副其实,让人明白代码是做了什么事情
- 避免误导。如不是数组不要以list结尾,可以用group或者直接用复数形式。避免使用很相似的命名。
- 做有意义的区分。别同时用productData,productInfo。
- 用读的出来的名称,可搜索的名称。单字母名称仅用于短方法的本地变量。名称长短应与作用域大小相对应,变量如果可能在代码中多出使用,应赋予便于搜索的名称。
- 类名和对象名应该是名词,不该是动词。方法名应该是动词
- 每个概念对应一个词。类似于fetch、retrieve、get及controllers和managers只用其中的一个。
- 避免一个单词用于不同目的。
- 使用命名代替魔术数字。使用SECONDS_PER_DAY代替86400。
二、函数
- 短小。函数不应该长于一屏。
- 只做一件事情。
- 参数。少用多参数,如果有三个以上参数,可以将其封装为对象。参数的名字与函数的名字应该有良好的关系
- 无副作用。副作用就是做与名字无关的事情。
- 不重复。
三、注释
注释的恰当用法是弥补我们用代码表达意图时遭遇的失败。注释的更新不及时。只有代码才是真实的。
- 注释不能美化糟糕的代码。
- 用代码代替注释
- 好注释。提供信息的注释,解释意图的注释。TODO。警示。
- 坏注释。多余的注释、废弃的注释、糟糕的注释、被注释的代码。
四、格式
- 垂直格式。空白行分割代码,相关联的代码应该互相靠近。变量声明尽可能靠近使用位。函数调用者在被调用者的上面。
- 水平格式。遵循代码规范。