hello,大家好,我是张张,「架构精进之路」公号作者。
提起编程,对于程序员同学而言并不陌生,关于防御性编程相信大家也有所耳闻,但是它具体包括哪些内容呢?
又有哪些行之有效的处理方案呢?
我们又该如何正确应用呢?
......
本文作者结合实际工作中的一些应用经验,来全面解析一下防御性编程。
本文主要内容:
1、什么是防御性编程
2、防御性编程的重要性
3、输入检查
4、断言的应用
5、错误处理
6、隔离
7、防御策略及建议
1、什么是防御性编程
关于防御性编程,这一概念开始来自于汽车的防御性驾驶技术,意为你永远无法确定另一位司机将要做什么,才能确保他人做出危险动作时不会伤害到你。
防御性编程应用过程中,并不是指让你从保护自身,对他人持有“批判或攻击”的态度,而是将保护的意识落地到自身程序上,通过一些防御手段让你的代码程序不因传入的错误数据而出错崩溃。
大家通常会说,“代码有问题很正常的呀”,的确是这样,那更应该在编写程序的时候提高防御性的重要性,尤其核心程序能力,做好程序错误影响的包容性。
2、防御性编程的重要性
随着目前互联网已渗透到各行各业,每个细微的风险问题都可能会被放大,足以影响整个行业。
1996年6月4日,欧洲航天局的 Ariane 5 Flight 501 在起飞后 40 秒被引爆。因为导航软件里的一个 bug,这个价值 10 亿美金的运载火箭不得不自毁。
2019年1月,拼多多被爆出现重大BUG,用户可领100元无门槛券,造成大批用户开始‘薅羊毛’,一晚上200多亿都是话费充值。
2019年5月时候,部分用户反映其支付宝出现网络故障,账号无法登录或支付。支付宝官方表示,该故障是由于杭州市萧山区某地光纤被挖断导致,这一事件造成部分用户无法使用支付宝。