这两天,同事们的朋友圈被“码农因为代码不规范问题枪击同事”的新闻刷了屏,几名程序员同事也借此吐了吐槽。但是,我们顺藤摸瓜找到了英文报道原文,发现外媒只是报道了枪击的事实,并没有阐明枪击的原因,也就是说,这个所谓“代码不规范”的原因,可能只是国内外网友的评论或猜测。
枪击事件还原
据外媒报道,本周三上午,美国一名员工在位于威斯康星州的美国企业资源规划软件(ERP)开发商 WTS Paradigm 的办公楼枪击四名同事,导致一人情况危急,两人重伤。最终警方赶到并枪击了行凶者,该凶手被送往医院后不治身亡。
据了解,这名行凶者是 WTS Paradigm 的员工。事后,其同事接受采访时表示当时他们都在工作,枪声却突然响起……
目前,由于该行凶者已经离世,所以枪击的原因成了未解之谜,警方也尚未给出调查细节。
为什么“代码不规范”成了“诱因”?
在朋友圈广为流传的某篇 10W+ 文章里,标题赫然写着“因代码不规范,码农枪击……”,似乎已经为事件盖棺定论,同时引发了一大波程序员的吐槽。在本文里,我们暂且不去讨论这起枪击事件的起因,毕竟斯人已逝,调查和取证本该是警察叔叔的事。这里我们就来说说,为什么“代码不规范”这条炮制出来的杀人诱因,竟然引起了那么多共鸣?
一个团队中程序员能力不一,有些团队或公司可能并不会可以要求代码规范。在前文提到的炮制理由中“不写注释、不遵循驼峰命名、括号换行,最主要还天天 git push -f 等”,还有不加大括号、不采用预编译模式、使用过时方法等,都是代码不规范的表现。
代码不规范不一定会引起枪击,但肯定会造成很多问题,甚至带来一些安全漏洞:
1.影响团队合作,降低效率:对于共同完成项目的团队而言,如果没有统一的代码规范,最终整合代码时,可能会出现看不懂命名,或者阅读过程不断询问的情况,导致团队效率低下,甚至造成成员之间的矛盾;例如 git push -f,把别人的劳动成果全部覆盖掉,出现一次就会遭到全员围攻;
2. 提高维护成本:代码不规范导致可读性降低,后期的代码维护会耗费更多人力甚至财力成本;一旦代码越来越多,最后的维护就难以为继,给运维人员造成很大负担;
3. 引发各种 bug:如果输入输出参数、异常处理、日志处理等没有规范,很容易导致大量低级 bug,还很难找到 bug 的原因;
4. 不利于代码审查,甚至造成安全漏洞:代码审查是纠正代码错误,保证开发周期安全顺利进行的重要一步。如果代码不规范,就会加重代码审查的工作量和难度,导致代码审查工作没有根据还浪费时间。某些情况下,代码不规范还会造成安全漏洞,此前 Morpheus 智能合约爆出的重大安全漏洞,就是大小写错误造成的;
5. 不利于程序员自身的成长:有些人可能没有意识到代码规范的重要性,有些人意识到了但由于项目时间紧、流程繁琐等原因而不去遵循。这跟当前开发流程与安全之间的关系很像。很多人为了速度而牺牲前期的必要流程,却给后续的工作带来了更多麻烦。其实,规范的代码有助于理解开发语言、模式和架构,也有利于提升开发水平。
对于公司和团队而言,制定符合实际情况的开发规范并非难事,重要之处在于每个人自己认识到规范的重要性,以及养成规范的习惯并坚持贯彻。
不管怎么说,这则半真半假的新闻至少引起了人们对代码规范和安全性的探讨和重视。
最后,祝逝者安息,生者自强。