沒錯,這是一篇火葯文。網上流傳的各種編程規范幾乎青一色都是說用空格代替Tab,其理由幾乎都是“這是唯一能保證在所有環境下獲得一致展現的方法”。
那我想問一句,你們到底能要多少種環境要看代碼???
1、用Windows自帶的記事本?那我只能說,你繼續裝,看你什么時候才能完成得了任務。
2、連接到Linux服務器上使用VI或者VIM?我也只能說只有改服務器的配置文件的時候才會這樣做吧,而且如果是配置文件比較復雜也是下載下來用Notepad++改清晰很多好伐,比如Aapche的配置文件在Notepad++選擇shell語言的配色規則,那一大段一大段綠的注釋立刻就可以一眼跳過了,能比在SSH上看的一堆黑白文字好一萬倍吧。
3、開發機是Linux或者MAC?我只能說,你黑客你隨意、你公司壕你隨意,但是這個都用了裝個集成IDE有那么難嗎,想調成多少就多少啦,還要看系統文本編輯器里丑丑的一個Tab八個空格嗎?
4、IDE很多難以統一?網頁開發的Notepad++、Sublime、Dreamweaver、PHPStorm、HBuilder,微軟的VC++6.0、VS20xx,嵌入式開發的Keil C51、Keil MDK、TK Studio,還有一批Eclipse外觀的各種IDE(Eclipse、ZendStudio等),我都用過,但還沒見過一個默認不是一個Tab四個空格的,所以真心不明白不同的IDE之間在代碼的顯示上到底能有什么大的差別。
5、代碼貼到網上對齊有問題?這個我還沒遇到過,如果有,那么只能說那個網站跟不上時代,別人網站都行你卻不行你說是不是網站的問題。
所以,綜上所述,需要用空格來確保所有環境統一展示 是一個偽需求!
細數空格帶來的不便
1、代碼對不齊。在HTML代碼中,非常多重的嵌套縮進是常有的事,但你試想看看,同一個文件里大部分縮4空格、但有的縮3空格,有的個別甚至縮2空格,這是怎么樣一種亂象。或者同一個項目里,有的HTML是用4個空格,有的HTML是用2個空格。不用懷疑,很多老代碼都有這樣的現象。即使是一個人開發的都會,一段時間覺得4個空格比較標准,一段時間又覺得HTML一行那么長,用2個空格節省位置。空格縮進的不嚴謹就這樣無形地把代碼帶入了混亂。
2、鼠標不好點和方向鍵不好用。比如你要修改某個地方,鼠標只是點左了一點點,然后就光標就去了前面的空格的位置,而不是真正代碼開始的地方,然后你又得多點一下或者按個右方向鍵。手不太熟練的偏差大一點的還要點很多下或者按幾下方向鍵才行。還有在按上下方向鍵時,有時候又會去到了一些不理想的空格位。
3、在使用TortoiseSVN的文件對比工具時,太多的點點點,而不是一連四格的橫線箭頭。在文件左邊一片片的點點,尤其在網頁文件中前面縮進空格的點十分容易與CSS的class選擇器混淆,影響視覺。
4、代碼文件變大了,這個問題主要體現在網頁文件上,以UTF8編碼來算,一個Tab是1(原以為3)個字節而對應的四個空格是4(原以為12)個字節,所以每一個本來用Tab的地方都會多出3(原以為9)個字節來,可能一個文件上看不出來有多大差別,但是有千千萬萬個用戶瀏覽呢?會白白增加了多少網絡帶寬?即使是有GNU壓縮,但是在大訪問量的網站也值得思考。
5、單行注釋時,如果是用Tab縮進,// 不會使后面的代碼后退兩格,代碼依然對齊;而空格縮進的,//會使代碼后退兩格,代碼會變得不對齊。有小部分IDE使用Ctrl+/快捷鍵添加單行注釋時可以智能識別除外。
6、回刪一個tab縮進只需按一次回刪鍵,而回刪四個空格需要按四次。當然更快的方法是選擇整行或幾行,然后按shift+tab,這個不多人知道吧~
7、如果你用過python,或者將來要用python。你懂的😅😅😅