文
章
目
录
章
目
录
本文主要讲解关于一个前端程序员线上白屏事故引发的思考相关内容,让我们来一起学习下吧!
最近搞了一个线上白屏事故,被业务方投诉了,还发了事故通报。难受了好一阵子,也思考了很多东西,记录如下:
起因
最近写了一个测试环境的划线工具,为了防止它在线上出现,我用了这样的语法:
{
isDebug && <LineMarker/>
}
这里有一个坑,isDebug不是boolean类型而是 0 和 1 ,这就导致了在测试环境它是1,会正常渲染后面的部分。而在线上环境它是0,代码就变成了:
{
0
}
这段ReactNative代码,在iOS上就会报错:string must in 导致线上白屏。当时上线着急没做线上回归验证,结果被客户投诉了。
反思
人一定会犯错
经过这次事故,再一次加深了一个认知:人一定会犯错。
在软件开发中,即使是最细心的工程师也无法完全避免错误。之前看过一个有趣街头挑战:你只需从0写到300,不出错就能得到100块钱。听起来简单吧?但实际上,能成功完成的人寥寥无几。这不仅仅是一个游戏,也是对我们工作的真实写照。在编写每天成百上千行的代码中,不出错基本上是不可能的。
如何应对人的不可靠性
人一定会犯错,那么如何减少人为错误带来的影响?我想到了以下三个方面:
1. 规范化开发流程
规范化的开发流程是减少错误的第一步。具体包括:
- 需求评审 在开始编码前,团队应该彻底理解并一致同意需求。这有助于避免基于误解或假设进行的开发。
- 技术评审 在编码之前进行技术设计的评审可以确保选择最佳的实现方案,同时避免未来的重构和错误。
- 代码审查 通过CodeReview,可以发现和纠正潜在的错误,并提高代码的质量和可维护性。
- 测试 自测和回归测试是关键环节。它们确保新代码不会破坏现有功能,并且按预期工作。
2. 自动化工具。
- 持续集成和持续部署(CI/CD) 通过自动化流水线,规范每一次的上线行为,避免因此而导致的低级错误。
- 静态代码分析工具 项目要配置上合适的lint规则,做到开发阶段就提前发现问题。针对本次事故,我另外开发了一个VSCode插件,检测到『isDebug && 』直接标红提醒,虽然不能保证以后不出任何问题,但能做到同样问题不会出现第二次!
3. 做好精力管理。
人是不可靠的,但相对来说,精力充沛的时候,稍微可靠一点。所以尽可能地管理好精力,才能好好工作。以下是一些保持精力充沛方法:
- 规律的作息时间: 维持固定的睡眠和醒来时间有助于保持身体的生物钟稳定,这对保持精力至关重要。作息最重要的是规律,在出事故以后我调整了作息,严格每天11:30之前入睡,希望我能坚持下来。
- 充足的运动: 运动不仅对身体健康有益,还能提升精神状态。定期的运动,如散步、跑步或健身,可以提高能量水平和工作效率。
- 注意工作间休息: 长时间的连续工作会导致疲劳和效率下降。每小时短暂休息几分钟,进行伸展或走动,可以帮助恢复精力。
- 健康饮食: 营养均衡的饮食对保持良好的精力水平至关重要。避免过多摄入糖分和咖啡因,这些可能会导致能量水平快速上升后又迅速下降。我发现中午不吃碳水,下午就不容易犯困。
总结
在软件开发中,人为错误不可避免,但通过实施规范化的开发流程、利用自动化工具,以及维持充沛的精力,我们能尽可能地降低这些错误的影响,从而保障项目的稳定性和我们的工作体验。
以上就是关于一个前端程序员线上白屏事故引发的思考相关的全部内容,希望对你有帮助。欢迎持续关注潘子夜个人博客(www.panziye.com),学习愉快哦!