回顾 2018 年,我挺意外的。在 2018 年,我写了一篇 10万 + 的文章《因不写注释,码农杀了4位同事,一人情况危急》。
这篇文章开始百度收录了,搜索量一度达到历史最高,导致我的网站几度奔溃!后来我把这篇文章发到了我的百家号,也收获了非常多的流量!另外网上还有非常多的微信公众号转载,大多都完成了 10 万 + 的目标!
很多人,把这些文章当作笑话一样的看。其实,现实中还真有不少例子是因为代码不规范,导致产生了严重漏洞的生产问题。今天我们就一起来扒一扒苹果历史上的一个因为代码不规范产生的严重的漏洞问题。
苹果的这个漏洞用 C 语言伪代码可以简单的描述如下所示:
上面的代码只要是程序员应该都能看出问题吧!在代码的第三行,多了一个 goto fail; 的代码。导致后面的其他代码「失效」,这一低级错误也让所有的安全人员大跌眼镜。你可能会说,这开发人员真是太粗心了,是不是他复制代码的时候,多复制了一行,然后忘记删除了?
我想苹果的开发人员一定是没有阅读过阿里巴巴的开发规范,开发手册。如果看过的话,这个漏洞获取就不会产生了。
此刻,我想苹果的开发程序员内心一定是奔溃的!
当然这个问题也不能完全怪到开发的头上,测试毕竟也没有覆盖到,你说是吧!
据说这段代码,后来也有多个人阅读过,也做过 Code Review,但是因为代码的缩进关系,很多人都没有发现这个问题,直到***暴露出来!
关于这个漏洞的细节可以参考:https://www.imperialviolet.org/2014/02/22/applebug.html
事实上我们回头去看自己一年前的代码,一样会充满推到重来的欲望。现实环境的变化,也影响着你我对于代码「好」与「坏」的判断标准。
编程其实是一种创造性的工作,并不是程序员自嘲的「码农」,好的代码像艺术品,简单、优雅、直接,优秀程序员不会为了炫技把简单的事情搞复杂,编程也不是简单的复制粘贴和修修改改。从整体结构上看,好的代码是模块化的,嵌套的,层层递进的。
好的代码与技术能力高低没有太直接的关系,关键是看你是否拥有良好的编码����,����习惯!