原文:http://atroche.org/post/30994290348/javascript-indentation
JavaScript沒有一個相當於PEP8的東西(譯者注:PEP8是python官方的代碼風格指南).沒有官方的文檔告訴我們應該如何來縮進.社區的風格指南(有很多)又沒有一個統一的共識.作為一個程序員,我們又該怎么做?
我寫了一個腳本把GitHub上前100個最受關注的JS項目克隆了下來,看一下他們是用什么來縮進自己的.js文件的.下面是統計結果:
和其他語言,比如Ruby和Python中,某種特定風格占據主導地位的情況比較而言,JavaScript中,這三種縮進風格貌似都占據了不少份額.難道是JS社區比較雜亂無章?
前十個最受關注的項目中.有八個項目使用了兩個空格來縮進(jQuery和three.js使用了制表符.)
統計結果和那些最知名的風格指南中的建議比較一下,又如何呢?
- Douglas Crockford: 四個空格
- Google: 兩個空格
- jQuery: 制表符
- Idiomatic JavaScript: 兩個空格
- GitHub: 兩個空格
- NPM: 兩個空格
- CoffeeScript output: 兩個空格
有超過一半的網站都使用jQuery,Douglas Crockford寫了Stack Overflow上最受歡迎的JavaScript書籍,很顯然,他們都脫離了JavaScript社區.
下一步,我會讓我的代碼(CoffeeScript編寫)能夠統計行的長度,行終止符以及其他JavaScript風格的問題.如果你對這個感興趣,可以在Twitter上關注我.
用什么來縮進只是個人喜好的問題(所以才稱之為代碼"風格"),但是如果你創建了一個開源項目,希望它是符合社區標准的話,那就用兩個空格來縮進.
-
GitHub上的項目可能並不能反映出大部分編寫商業軟件的程序員們是如何編寫他們的代碼的.但考慮到網上大部分JS文件都被壓縮的面目全非,這已經是我們能找到的最好的統計源了. ↩
-
我的朋友兼導師Tim Diggins建議我調查一下服務器端的語言對JavaScript編程風格的影響.我已經能猜到一些了,比如,有Python背景的程序員更喜歡使用四個空格來縮進. ↩