代碼不規範導致碼農槍擊?事實是……
這兩天,同事們的朋友圈被「碼農因為代碼不規範問題槍擊同事」的新聞刷了屏,幾名程序員同事也藉此吐了吐槽。但是,我們順藤摸瓜找到了英文報道原文,發現外媒只是報道了槍擊的事實,並沒有闡明槍擊的原因,也就是說,這個所謂「代碼不規範」的原因,可能只是國內外網友的評論或猜測。
槍擊事件還原
據外媒報道,本周三上午,美國一名員工在位於威斯康星州的美國企業資源規劃軟體(ERP)開發商 WTS Paradigm 的辦公樓槍擊四名同事,導致一人情況危急,兩人重傷。最終警方趕到並槍擊了行兇者,該兇手被送往醫院後不治身亡。
據了解,這名行兇者是 WTS Paradigm 的員工。事後,其同事接受採訪時表示當時他們都在工作,槍聲卻突然響起……
目前,由於該行兇者已經離世,所以槍擊的原因成了未解之謎,警方也尚未給出調查細節。
為什麼「代碼不規範」成了「誘因」?
在朋友圈廣為流傳的某篇 10W+ 文章里,標題赫然寫著「因代碼不規範,碼農槍擊……」,似乎已經為事件蓋棺定論,同時引發了一大波程序員的吐槽。在本文里,我們暫且不去討論這起槍擊事件的起因,畢竟斯人已逝,調查和取證本該是警察叔叔的事。這裡我們就來說說,為什麼「代碼不規範」這條炮製出來的殺人誘因,竟然引起了那麼多共鳴?
一個團隊中程序員能力不一,有些團隊或公司可能並不會可以要求代碼規範。在前文提到的炮製理由中「不寫注釋、不遵循駝峰命名、括弧換行,最主要還天天 git push -f 等」,還有不加大括弧、不採用預編譯模式、使用過時方法等,都是代碼不規範的表現。
代碼不規範不一定會引起槍擊,但肯定會造成很多問題,甚至帶來一些安全漏洞:
1.
影響團隊合作,降低效率:
對於共同完成項目的團隊而言,如果沒有統一的代碼規範,最終整合代碼時,可能會出現看不懂命名,或者閱讀過程不斷詢問的情況,導致團隊效率低下,甚至造成成員之間的矛盾;例如 git push -f,把別人的勞動成果全部覆蓋掉,出現一次就會遭到全員圍攻;2.
提高維護成本:
代碼不規範導致可讀性降低,後期的代碼維護會耗費更多人力甚至財力成本;一旦代碼越來越多,最後的維護就難以為繼,給運維人員造成很大負擔;
3.
引發各種 bug:
如果輸入輸出參數、異常處理、日誌處理等沒有規範,很容易導致大量低級 bug,還很難找到 bug 的原因;4.
不利於代碼審查,甚至造成安全漏洞:
代碼審查是糾正代碼錯誤,保證開發周期安全順利進行的重要一步。如果代碼不規範,就會加重代碼審查的工作量和難度,導致代碼審查工作沒有根據還浪費時間。某些情況下,代碼不規範還會造成安全漏洞,此前 Morpheus 智能合約爆出的重大安全漏洞,就是大小寫錯誤造成的;
5.
不利於程序員自身的成長:
有些人可能沒有意識到代碼規範的重要性,有些人意識到了但由於項目時間緊、流程繁瑣等原因而不去遵循。這跟當前開發流程與安全之間的關係很像。很多人為了速度而犧牲前期的必要流程,卻給後續的工作帶來了更多麻煩。其實,規範的代碼有助於理解開發語言、模式和架構,也有利於提升開發水平。對於公司和團隊而言,制定符合實際情況的開發規範並非難事,重要之處在於每個人自己認識到規範的重要性,以及養成規範的習慣並堅持貫徹。
不管怎麼說,這則半真半假的新聞至少引起了人們對代碼規範和安全性的探討和重視。
最後,祝逝者安息,生者自強。
*參考來源:USATODAY,作者 AdlerI,轉載請註明來自 FreeBuf.COM
※Aws_Public_Ips:獲取AWS賬戶關聯的所有IP地址(IPv4IPv6)的工具
※Apache已修復Apache Tomcat中的高危漏洞
TAG:FreeBuf |