行業(yè)動(dòng)態(tài)

一起槍擊案引發(fā)的代碼規(guī)范之談

來(lái)源:聚銘網(wǎng)絡(luò)    發(fā)布時(shí)間:2018-09-24    瀏覽次數(shù):
 

信息來(lái)源:freeBuf


這兩天,同事們的朋友圈被“碼農(nóng)因?yàn)榇a不規(guī)范問(wèn)題槍擊同事”的新聞刷了屏,幾名程序員同事也借此吐了吐槽。但是,我們順藤摸瓜找到了英文報(bào)道原文,發(fā)現(xiàn)外媒只是報(bào)道了槍擊的事實(shí),并沒(méi)有闡明槍擊的原因,也就是說(shuō),這個(gè)所謂“代碼不規(guī)范”的原因,可能只是國(guó)內(nèi)外網(wǎng)友的評(píng)論或猜測(cè)。 

start-image-500.jpg

槍擊事件還原

據(jù)外媒報(bào)道,本周三上午,美國(guó)一名員工在位于威斯康星州的美國(guó)企業(yè)資源規(guī)劃軟件(ERP)開(kāi)發(fā)商 WTS Paradigm 的辦公樓槍擊四名同事,導(dǎo)致一人情況危急,兩人重傷。最終警方趕到并槍擊了行兇者,該兇手被送往醫(yī)院后不治身亡。

6d6b9e97-2ccf-44c9-9613-6db5718d98c9-AP_Wisconsin_Shooting.jpg

據(jù)了解,這名行兇者是 WTS Paradigm 的員工。事后,其同事接受采訪時(shí)表示當(dāng)時(shí)他們都在工作,槍聲卻突然響起……

目前,由于該行兇者已經(jīng)離世,所以槍擊的原因成了未解之謎,警方也尚未給出調(diào)查細(xì)節(jié)。

為什么“代碼不規(guī)范”成了“誘因”?

在朋友圈廣為流傳的某篇 10W+ 文章里,標(biāo)題赫然寫(xiě)著“因代碼不規(guī)范,碼農(nóng)槍擊……”,似乎已經(jīng)為事件蓋棺定論,同時(shí)引發(fā)了一大波程序員的吐槽。在本文里,我們暫且不去討論這起槍擊事件的起因,畢竟斯人已逝,調(diào)查和取證本該是警察叔叔的事。這里我們就來(lái)說(shuō)說(shuō),為什么“代碼不規(guī)范”這條炮制出來(lái)的殺人誘因,竟然引起了那么多共鳴?

下載.jpg

一個(gè)團(tuán)隊(duì)中程序員能力不一,有些團(tuán)隊(duì)或公司可能并不會(huì)可以要求代碼規(guī)范。在前文提到的炮制理由中“不寫(xiě)注釋、不遵循駝峰命名、括號(hào)換行,最主要還天天 git push -f 等”,還有不加大括號(hào)、不采用預(yù)編譯模式、使用過(guò)時(shí)方法等,都是代碼不規(guī)范的表現(xiàn)。

代碼不規(guī)范不一定會(huì)引起槍擊,但肯定會(huì)造成很多問(wèn)題,甚至帶來(lái)一些安全漏洞:

1. 影響團(tuán)隊(duì)合作,降低效率:對(duì)于共同完成項(xiàng)目的團(tuán)隊(duì)而言,如果沒(méi)有統(tǒng)一的代碼規(guī)范,最終整合代碼時(shí),可能會(huì)出現(xiàn)看不懂命名,或者閱讀過(guò)程不斷詢(xún)問(wèn)的情況,導(dǎo)致團(tuán)隊(duì)效率低下,甚至造成成員之間的矛盾;例如 git push -f,把別人的勞動(dòng)成果全部覆蓋掉,出現(xiàn)一次就會(huì)遭到全員圍攻;

2. 提高維護(hù)成本:代碼不規(guī)范導(dǎo)致可讀性降低,后期的代碼維護(hù)會(huì)耗費(fèi)更多人力甚至財(cái)力成本;一旦代碼越來(lái)越多,最后的維護(hù)就難以為繼,給運(yùn)維人員造成很大負(fù)擔(dān);

3. 引發(fā)各種 bug:如果輸入輸出參數(shù)、異常處理、日志處理等沒(méi)有規(guī)范,很容易導(dǎo)致大量低級(jí) bug,還很難找到 bug 的原因;

4. 不利于代碼審查,甚至造成安全漏洞:代碼審查是糾正代碼錯(cuò)誤,保證開(kāi)發(fā)周期安全順利進(jìn)行的重要一步。如果代碼不規(guī)范,就會(huì)加重代碼審查的工作量和難度,導(dǎo)致代碼審查工作沒(méi)有根據(jù)還浪費(fèi)時(shí)間。某些情況下,代碼不規(guī)范還會(huì)造成安全漏洞,此前 Morpheus 智能合約爆出的重大安全漏洞,就是大小寫(xiě)錯(cuò)誤造成的;

5. 不利于程序員自身的成長(zhǎng):有些人可能沒(méi)有意識(shí)到代碼規(guī)范的重要性,有些人意識(shí)到了但由于項(xiàng)目時(shí)間緊、流程繁瑣等原因而不去遵循。這跟當(dāng)前開(kāi)發(fā)流程與安全之間的關(guān)系很像。很多人為了速度而犧牲前期的必要流程,卻給后續(xù)的工作帶來(lái)了更多麻煩。其實(shí),規(guī)范的代碼有助于理解開(kāi)發(fā)語(yǔ)言、模式和架構(gòu),也有利于提升開(kāi)發(fā)水平。

對(duì)于公司和團(tuán)隊(duì)而言,制定符合實(shí)際情況的開(kāi)發(fā)規(guī)范并非難事,重要之處在于每個(gè)人自己認(rèn)識(shí)到規(guī)范的重要性,以及養(yǎng)成規(guī)范的習(xí)慣并堅(jiān)持貫徹。

不管怎么說(shuō),這則半真半假的新聞至少引起了人們對(duì)代碼規(guī)范和安全性的探討和重視。

最后,祝逝者安息,生者自強(qiáng)。


 
 

上一篇:2018年09月23日 聚銘安全速遞

下一篇:蘋(píng)果公司被曝在iOS操作系統(tǒng)中秘密添加了監(jiān)視跟蹤功能