可维护性代码的特点
可理解性: 别人接手的时候可以在短时间内熟悉理解代码 无需原开发人员解释
可适应行: 数据上变化对代码的影响降低
可扩展性: 在代码架构上对核心代码进行拓展
可调式性: 自定义报错消息出现错误后迅速定位
可理解性
1.可读性
a. 缩进 统一缩进按钮和间隔 tab键缩进 四个空格缩进
b. 注释
- 与代码同一行,用来解释之前的代码
- 独占一行,用来解释下一行代码
- 多行,用来注释掉一个代码块或描述大段代码的具体任务
- 使用注释声明
TODO 说明代码还未完成,说明接下来要做的事情。 FIXME 说明代码存在bug,应当尽快修复。 REVIEW 说明代码任何可能的改动都需要告知作者。
2.松散耦合
a. 解耦HTML/JavaScript
- js代码块中不要出现html代码 同理可得html不要出现js代码
b. 解耦CSS/Javascript
- 避免使用CSS表达式
- 避免直接修改dom的样式,通过类名去实现想要的效果
c. 解耦应用逻辑和事件处理程序
3. 良好的代码习惯
a. 避免全局变量
b. 避免与null进行比较(用instanceof来判断)
c. 使用常量 (const)
d. 使用全等和不全等
f. 以上这些良好的代码习惯可以通过eslint进行强制规定
可适应行
1. 配置化
a. 对可以配置的参数抽出来配置化
- 比如可能遇到的开发环境上线环境的不同 把链接抽出来根据环境变量来配置 (智慧工地)
- 对不同项目但是业务逻辑相同的代码 进行不同的地方配置化 将变化的地根据项目的不同进行配置 (规划策划系统)
可调式性
1. 对错误进行自定义配置可以快速了解错误类型
case 403:
errorInfo = '403:拒绝访问';
break;
case 404:
errorInfo = '404:资源不存在';
break;
case 405:
errorInfo = '405:请求方法未允许'
break;
case 408:
errorInfo = '408:请求超时'
break;
case 500:
errorInfo = '500:访问服务失败';
break;
case 501:
errorInfo = '501:未实现';