專欄 | 九章演算法
網址 | www.jiuzhang.com
有些人覺得,程式碼只要寫出來了,程式跑通過了就可以了,為什麼要浪費時間去約束人家怎麼寫程式碼呢。但是,現實工作中,我們發現,不少人就是因為程式碼風格不佳,被掛掉了面試,或者出現團隊協作問題。
為什麼程式碼風格這麼重要呢?
以Google為例,谷歌的程式碼庫是向全公司的所有程式猿的,所有的程式猿都可以看到公司所有的程式碼。甚至是上古大牛jeff dean親手寫的程式碼,比如Map Reduce,GFS,Bigtable的原始碼。
在谷歌的程式碼庫裡,至少有20億行程式碼。如此龐大的程式碼庫,萬萬千千的程式設計師都要來看,如果沒有統一的程式碼風格,閱讀起來是相當困難的。因此,在谷歌,所有的要提交的程式碼都需要經過批閱,未經批閱是不可能交到程式碼庫裡面的。
因此,Google的程式碼庫中,每一級的檔案都有相應的檔案主,正是由這些檔案主來負責管理本檔案的程式碼規範。程式猿在提交程式碼的時候,必須在審批者裡面加上程式碼所有檔案的檔案主批閱。由檔案主負責批閱此次交的程式碼改動符合整個檔案的程式碼書寫規範。
檔案主是如何審閱這些程式碼的呢?其中程式碼的書寫規範,是尤其重要的審閱內容。包括每一個小空格,標點,對齊方式,都必須遵循Google的內部書寫程式碼的風格規則。以此保證程式碼符合Google統一的格式。所以如果你還在哀怨演算法班老師在課堂上給你指出的“不要用Tab, 要用空格”,“變數名後面要有空格”等程式碼風格規範,而且不能很好的做到這些基本的程式碼風格準則,那麼你不僅會在工作中遇到和同事的溝通、協作障礙,而且你有很大的可能因為程式碼風格不佳而無法通過面試。
Google的程式碼風格標準是給所有程式設計師的標準,任何人寫的程式碼,如果程式碼風格有問題,別人都可以要求你修改。要知道,每次的程式碼提交,系統都會發郵件抄送給整個團隊。這樣做的目的是保證團隊的所有人知道每次程式碼修改原因,保證團隊程式碼符合相同的規範。
下面我給出Google官方几種程式碼的Coding Style Guide:
C++ Style Guide
Objective-C Style Guide
Java Style Guide
Python Style Guide
R Style Guide
Shell Style Guide
HTML/CSS Style Guide
JavaScript Style Guide
AngularJS Style Guide
Common Lisp Style Guide
Vimscript Style Guide
XML Document Format Style Guide
歡迎關注我的微信公眾號:九章演算法(ninechapter)。
精英程式設計師交流社群,定期釋出面試題、面試技巧、求職資訊等