- 很多程式設計師寫出了幽靈程式碼,總是抓不出錯。這是因為在撰寫程式時,就不夠嚴謹。
- 要如何寫出嚴謹的程式碼呢? 遇到異常(exception)或是錯誤(error),有辦法處理,就要設法處理。沒有辦法處理時,也要寫在規格(也就是註解),至少讓後來維護的人知道這邊有個「坑」
於是我歸納了一些要寫出嚴謹的 golang 程式,可以注意的重點:
- 不要亂用 log level ,要小心地使用 log level 。比方說,在 golang 裡, log.Fatal 就會呼叫 exit(1) ,這個就絕對不可以亂用。有時候,網路上找到的 code snippet 就用了 log.Fatal。如果直接不加思索的照抄。那程式就會異常終止了。
- log level 和 log message 要好好地搭配使用: 比方說,如果引入了 logrus 這套 log level 的函式庫。對於不會影響程式正常運作的 log level 就有 info, warn, error 三種。既然已經用了 warn 的 log level ,其實 log message 就該避開使用 error 這個關鍵字。
- 儘量在程式裡處理所有的函數傳回的 error 。要做到這件事,有一個 golang tool 可以使用: errcheck 。這個工具可以檢查出,所有傳回錯誤,錯誤卻沒有被處理的函數。如果有用 vim-go 的話,可以下指令 :GoErrCheck