是什么?为什么?
“最优秀的飞行员也会在起飞前按检查清单检查一遍飞机,没人拿生命开玩笑。我们生活和投资中的决策也应该有一个检查清单,这能使我们少遇风险。”——查理·芒格(美国著名投资家)
在飞行中,飞行员无论飞行技术多好,记忆力多强,都无法预测飞行中可能发生的所有状况,这时他需要什么?他需要可以帮他防止“错、漏、忘”的检查单!
项目迭代更新变得越来越复杂,上线所要注意的细节日益增多,上线之后遗忘的细节也可能导致生产环境发生重大的问题,前端上线之前,根据“错、漏、忘”的检查单可以以平和的心态提前预防上线问题的发生。
数值类
- 获取数据和信息(通常是后台返回null,或者前端未定义undefined,是否对类型做过处理和转换并设置为空时的默认值?比如:var num = parseInt(Str); 前端需验证每个返回的对象KEY值是不是存在。
- 在所有后台请求发生错误的地方,是否编写了错误处理逻辑?比如:阻止继续执行、显示错误信息、记录错误日志和信息等。
- url进行传参的时候,有没有进行特殊字符的decode?
- 图片、音视频,source-url是否正确?如果后台数据未返回,是否有替代方案?
git flow流程
- 最后测试通过的代码是否发布在release分支上?
- 是否推送release分支到master分支的合并请求?
- develop分支是否是最新的测试通过的代码?
上线运维
- 前端dist文件存放的目录是什么,指向是正确的吗??
- 上线之后的正式环境测试账号密码有吗?
- 发布的HOST是: 是否正确?
- 发布的目标路径是: 是否正确?
- 打包编译的public-path设置的是当前目录下吗?
publicPath: './'
- 使用vue-router的话,使用的路由模式是hash吗?(目前仅仅支持hash)
- 上线的HOST,与前端资源是同源吗?要不要跨域?跨域要不要先解决?
- 如果后端将协议升级成https,但是加入后端需要配合Https协议地址栏访问,否则你Http访问或提示跨域等问题;
- 如果引用资源外部使用相对协议,在资源头里不加入Http或者https,只有//
- 要上线的最新代码是在release分支上了吗?测试和其他前端、运维知道了吗?
- 接口的域名设置了生产环境的吗?
- 哪些地方区分测试和生产的不同url,检查配置对了吗?
代码
- 多余的console.log,debugger去掉了吗?
- 代码中是否有直接写死的url地址?或者路径?
- TODO内容是否完整?
- 有没有重复引入同一个类?或者同一份样式?