编写可维护的代码十分重要,因为大多数开发者会花大量时间去维护别人写的代码。
什么是可维护的代码
- 容易理解:无须求助原始开发者,任何人一看代码就知道它是干什么的,以及它是怎么实现的。
- 符合常识:代码中的一切都显得顺理成章,无论操作有多么复杂。
- 容易适配:即使数据发生变化也不用完全重写。
- 容易扩展:代码架构经过认真设计,支持未来扩展核心功能。
- 容易调试:出问题时,代码可以给出明确的信息,通过它能直接定位问题。
编码规范
- 可读性
可读性必须考虑代码是一种文本文件。
可读性的另一方面是代码注释。
以下这些地方需要写注释- 函数和方法
- 大型代码块
- 复杂的算法
- 使用黑科技
- 变量和函数命名
代码中变量和函数的适当命名对于其可读性和可维护性至关重要。
一些通用命名规则- 变量名应该是动词, 如car或person
- 函数名应该以动词开始,例如 getName()。返回布尔值的函数通常以 is 开头,比如 isEnabled()。
- 对变量和函数都使用符合逻辑的名称,不用担心长度。
- 变量、函数和方法应该以小写字母开头,使用驼峰大小写(camelCase)形式,如 getName()和 isPerson。类名应该首字母大写,如 Person、RequestFactory。常量值应该全部大写并以 下划线相接,比如 REQUEST_TIMEOUT。
- 名称要尽量用描述性和直观的词汇,但不要过于冗长。
- 变量类型透明化
第一种标明变量类型的方式是通过初始化。定义变量时,应该立即将其初始化为一个将来要使用的类型值。
第二种标明变量类型的方式是使用匈牙利表示法。匈牙利表示法指的是在变量名前面前缀一个或多个字符表示数据类型。JavaScript 传统的匈牙利表示法用 o 表示对象,s 表示字符串,i 表示整数,f 表示 浮点数,b 表示布尔值。// 使用匈牙利表示法标明数据类型 let bFound; // 布尔值 let iCount; // 整数 let sName; // 字符串 let oPerson; // 对象
最后一种标明变量类型的方式是使用类型注释。
// 使用类型注释表明数据类型 let found /*:Boolean*/ = false; let count /*:int*/ = 10; let name /*:String*/ = "Nicholas"; let person /*:Object*/ = null;
松散耦合
我们应该随时注意,不要让我们写的代码产生耦合,如果有,则必须进行解耦合。
- 解耦 HTML/JavaScript
HTML 渲染应该尽可能与 JavaScript 分开。在使用 JavaScript 插入数据时,应该尽可能不要插入标 记。相应的标记可以包含并隐藏在页面中,在需要的时候 JavaScript 可以直接用它来显示,而不需要动态生成。 - 解耦 CSS/JavaScript
通过修改元素的 CSS 类名,可以把大部分样式限制在 CSS 文件里。JavaScript 只负责修改应用样式 的类名,而不直接影响元素的样式。只要应用的类名没错,那么显示的问题就只跟 CSS 有关,而跟 JavaScript 无关。 - 解耦应用程序逻辑/事件处理程序
编码惯例
-
尊重对象所有权
意思是不要修改不属于你的对象,如果你不负责创建和维护某个对象及其构造函数或方法,就不应该对其进行任何修改。 -
不声明全局变量
-
不要比较 null
-
使用常量