沙龙晃荡 | 3月31日 京东、微博、华为拭魅战专家与你合营商量容器技巧实践!
h、外部原因,操作体系或数据源。
没出缺点的法度榜样是一则谬论,世间难寻。假设存在着一个没有任何缺点的法度榜样,那么这个世界将会不复存在。
----《编程之禅》第四篇(金)第二节
hello world是仁攀类已知的最早的绝无bug的法度榜样,但我们在日常开辟中,需求弗成能简单到像hello world一样,经常是coding五分钟,debug2小时。在评论辩论若何削减bug之前我们评论辩论下哪些场景下轻易产生bug。
1、bug产生原因:
a、需求本来就有问题而产生的代码缺点。这类问题泉源是需求或产品这一块没有分析清跋扈,这个锅产品背,然则作为开辟者有须要介入到需求分析这个环节中。
b、代码实现汉孟耋相差很大年夜的缺点。这类问题也是比较常见的,开辟人员的思维与需求或产品人员的思维照样有很大年夜差距的。
c、很复杂的需求代码实如今某些逻辑上出缺点。这类问题有可能是开辟人员不想实现完全,也有可能需求过于复杂,在体系设计阶段就没有分析出所有情况。
d、需求更改后对原有营业代码进行重构,对原有营业不熟悉不懂得
e、粗心导致的缺点,比如前提断定写反,人孰能无过。
f、体系架构上的缺点。这类问题一般很少,出现的话是大年夜面积的。
g、对框架特点、数据构造、说话不熟悉,导致出现缺点。
那么若何避免产生bug呢,尤其是iOS,提交AppStore审核周期并不短,是否还记得那些惨痛的线上bug经历,半夜起来改bug,提交后审核好几天,所以有须要总结下若何避免bug,下面是我总结的几点心得,迎接弥补
•具体和无歧义的需求规格和营业逻辑
•合理的架构和模块
•清楚明白的模块借居口
•不要复制代码,尽可能采取共用的部分,反复的代码在修改时轻易造成不一致
•不要随便马虎重构代码,每次重构,尽量做到所重构的营业都在本次QA测试用例的覆盖范围内
•尽量在懂得同事营业代码的情况下,更改组内成员的营业代码
• 应用assert ,精确应用异常处理,捕获可以或许处理的异常
•处理界线前提,处理不法的参数,永远不要信赖数据的靠得住性,推敲到各类逻辑分支
• 限制函数的长度, 编写易读易保护的代码,不过度应用技能,难以懂得的代码很可能在修改中掉足
万一真的出现了bug也别慌,善用《甩锅大年夜法》, 代码没错接口的错,接口没错SDK的错,SDK没错编译器的错, 编译器没错虚拟机错, 虚拟机没错操作体系错, 操作体系没错,硬件错了,硬件没错还有电磁干扰,总之不要本身背锅哈哈哈,兄得栖身这口锅!!
最后我小我认为写出没有bug的法度榜样要在需求不不变的情况下。之所以产品赓续的保护有bug是因为后续的需求变革在前期的软件设计中是无法推敲的。因为需求变更,然则又弗成能每次变革需求都要从新设计架构和软件,导致软件也在bug发明和清除中轮回着来度过软件的生命周期,直到软件下线,所以我们只能赓续积聚开辟经验,培养思维的雅绫擒性,养成优胜的开辟习惯,来削减bug。
【编辑推荐】
- 法度榜样员:我只想宁地步写代码,引导却跟我谈大年夜局、讲奉献
- Ubisoft开辟了一个 AI 对象,能快速找出代码中的 Bug
- 微软项目经理谈若何用宏大年夜的代码构建Windows
- 开辟者恶梦:欧盟欲望过滤上传到互联网的所有代码
- 外媒速递:2018年最具人气的五款顶级代码编辑器
推荐阅读
沙龙晃荡 | 3月31日 京东、微博、华为拭魅战专家与你合营商量容器技巧实践! 另一个 ip 敕令供给有关体系路由表的信息。ip 敕令可以告诉你很多收集连接设备和状况的信息,然则所有这些词和>>>详细阅读
本文标题:避坑指南:程序猿如何避免线上Bug
地址:http://www.17bianji.com/lsqh/40880.html
1/2 1