行業(yè)動態(tài)

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

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

信息來源:freeBuf


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

start-image-500.jpg

槍擊事件還原

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

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

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

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

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

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

下載.jpg

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

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

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

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

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

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

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

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

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

最后,祝逝者安息,生者自強。


 
 

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

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