使用tab, 仍是空格, 小小編程習慣卻有巨大的差異

專欄 | 九章算法
網址 | www.jiuzhang.comhtml

在 《Silicon Valley》 第三季中,Richard由於用Tab仍是空格的問題和原本情投意合的女孩吵架,質問女孩爲何用空格鍵而不用tab,最後Richard甚至說出「我不會和一個用空格鍵而不是tab鍵的人同牀共枕」,兩人不歡而散。程序員

有的人以爲,無論使用 tab 仍是空格,都沒有什麼區別。可是,事實上,這樣一個小小的習慣,卻可能有巨大的差異。(有的人經過對編譯器的設置,使得tab鍵能夠替代空格鍵,此處忽略,不討論這種狀況)面試

使用空格鍵的比使用tab鍵的工資更高算法

最近,David Robinson 作了一個有趣的研究。他根據 Stack Overflow 2017開發者調查的原始數據,進行了線性迴歸分析。研究發現,在控制了國家、接觸編程的年數、開發人員類型和語言、教育水平、公司規模等要素後,使用空格鍵的程序員工資將會比使用tab鍵的程序員高出8.6%。編程

不過,David Robinson 也同時指出:使用tab鍵或空格鍵與薪資是有相關性而不是因果關係。David 坦誠,他沒法肯定他控制了數據集中存在的全部混雜因素。微信

使用空格鍵更有利於編程工做編輯器

使用空格鍵更有利於團隊工做

在不一樣的編輯器裏tab的長度可能不一致,因此在一個編輯器裏用tab設置縮進後,在其它編輯器裏看可能縮進就亂了。若是其餘人用轉換tab爲空格的編輯器打開你寫的文件,而後版本控制程序就會報衝突,很是很是麻煩。佈局

而使用空格鍵,任何人用任何編輯器查看代碼都是對齊的,包括網頁上查看(好比在GitHub上看代碼)。3d

使用空格鍵有利於代碼壓縮發佈

若是代碼須要壓縮發佈,使用空格的代碼一般具備更好的壓縮率。這裏面的原理是信息量,使用 tab 縮進的代碼中,仍然不可避免的含有空格(運算符之間的間隔,註釋等等),但使用空格的代碼中根本不含有 tab,這使得 tab 縮進代碼雖然不壓縮的時候更小,但熵更高,於是壓縮率較差,壓縮以後反而更大。版本控制

使用空格鍵能夠更精確控制視覺呈現

好比,有些愛搞怪的程序員喜歡在代碼中畫字符畫,就會喜歡空格鍵的精準操做。

使用空格鍵可能顯示出你的不良coding習慣

Tab 是製表符而不是縮進符,正如在 html 頁面中大量使用table進行佈局是個很差的編程習慣同樣,在編程中大量使用製表符佈局一般也不是個好習慣。

經過設置,可以使 Tab 鍵代替 Space 鍵

Tab鍵也有它的好處。其中最突出的優勢,莫過於按鍵次數少啦。

所以,不少編程老鳥他們會設置對編輯器中的 Tab 鍵是能夠進行個性化設置,經過調整 Tab 鍵的字符寬度,使之等同於 Space 鍵的操做。

那麼,你日常 Coding 的時候,是使用 Tab ,仍是空格,仍是使用 Tab 其實設置成空格呢?


推薦閱讀



歡迎關注個人微信公衆號:九章算法(ninechapter)。
精英程序員交流社區,按期發佈面試題、面試技巧、求職信息等

九章算法,IT教育領域的深耕者
九章算法,IT教育領域的深耕者
相關文章
相關標籤/搜索