2010年4月23日 星期五

coding style: spaces vs. tab

最近有不少體悟, 很多事沒接觸到那個環境, 看再多資料、想再久也不會明白。但有時候有一點相關經驗後, 反而沒多久就明白了。像大家常說的「換個位置換個腦袋」, 我覺得也是類似的情境。

話說兩年前和 York 聊到這個問題, 當時 York 說他發覺強者都支持用空白縮排, 但看了很多文章, 仍不明白用空白到底好在那。我們小聊了一陣子, 仍沒有定論。

結果出社會工作沒多久, 我忽然明白用空白縮排的好處了 --- 它能確保程式碼在任何地方長得一個樣。

有些人可能會說在自己的 vim / emacs 裡設好 tab 的寬度, 也能做到大家的畫面一致, 又保有日後修改寬度的彈性。然而, 觀看程式碼的介面太多了, 可能的場合遠比我原本想到的還多。像是 vim、emacs、Eclipse (或任何 IDE)、email (還得看用那家 mail client)、VCS (GUI 和 console 版都有)、Issue tracking system、各家 browser, 很難全部都提供彈性的設法, 即使有, 一一設定也太累了。還是爽快點直接用空白縮排比較省事啦。

以我自己為例, 平時用 vim coding, commit 前會用 hg 或 hgtk 看 diff。偶而會用 Redmine 看 changeset。上網找程式讀碼時會用 browser 直接看部份程式, 像看 JavaScript / CSS 是免不了的。附帶一提, 學生時代時, 我只用 vim 和 Eclipse, 自然會天真地認為大家設好 vim 和 Eclipse 就好啦。

沒有留言:

張貼留言

在 Fedora 下裝 id-utils

Fedora 似乎因為執行檔撞名,而沒有提供 id-utils 的套件 ,但這是使用 gj 的必要套件,只好自己編。從官網抓好 tarball ,解開來編譯 (./configure && make)就是了。 但編譯後會遇到錯誤: ./stdio.h:10...