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