如果編碼規範要求 Go 代碼每行不超過 100 個字元,是否合理,為什麼?
如果編碼規範里有這條,那你就要定義 tab 算多少格,或者規定用空格縮進,縮進多少格。如果組織內部推廣這個規範,你需要改 go fmt 的實現讓它支持這個邏輯,還要規定和實現折行時的排版,並且保證每個程序員都用你的修改版,不然程序員就要手工排版了。而且記得如果你規定用空格而不是 tab 縮進那就跟其他 go fmt 出來的代碼不兼容了。
go fmt 最大的目的就是讓這種排版方面的眾口難調的規定消失,沒有參數,不管哪個人哪個公司出來的代碼一個 go fmt 過去全是整齊劃一一個樣,不管你的編輯器怎麼設置你愛幾格縮進排版都看得過去。所以我覺得不管喜歡不喜歡,都最好不要在官方 go fmt 之外加排版規範。
以下節選自三位創始人中最沒名氣的Robert Grisemer在gopher china 2015上的《gofmt 的文化演變》https://github.com/gopherchina/conference/raw/master/2015/2-1%20gofmt%20%E7%9A%84%E6%96%87%E5%8C%96%E6%BC%94%E5%8F%98.pdf
合理啊,比 80 還多了 20 了。而且 go 也沒什麼地方一定需要長行的。
合理啊
很早以前, 美國的老太太把貓放進微波爐, 結果貓死了, 向廠商索賠, 法院判老太太勝訴. 原因是, 說明說上並沒有說不能把貓放進微波爐吧?
規則在先, 有約束. 就不會出現程序員把代碼寫的超出編輯器行緩衝...
go 統一規範,是我比較喜歡的一個原因
在這種無所謂的事情上,怎麼規定怎麼來。因為每行放多少字元都有人不滿意:)
我都是按照每行80約束自己的代碼的
好處是,用vi切屏幕時可以顯示在一行而不wrapping至於你們為啥是100而不是80,我也不知道,至少80還是convention。Python 的 PEP8 要求不得超過 80 最高寬容到 100 … 所以你們這個編碼規範不是沒有道理的,明顯是借鑒過的。
推薦閱讀:
※如何理解 slice 的 capacity?
※golang寫法疑問?
※系統學習GO,推薦幾本靠譜的書?
※王垠噴 Go 語言,許式偉贊 Go 語言,大家怎麼看?
TAG:Go語言 |