前言

大家好,我是 LINE Taiwan 的 Tech Evangelist - Evan Lin。這次很開心受到 Golang 社群的邀請,參加了 “Golang Taipei Gathering #54” 的聚會活動,並且分享 Golang 開發的一些技巧與個人開發的心得。在此也跟各位分享本次參與的心得,並且也希望透過社群分享的力量能夠讓 Golang 更受到人了解。

Golang in LINE MUSIC TW - Wei@LINE Music

介紹 LINE Music 中主要使用到的 Golang 套件與相關的經驗分享。

errors x stack x info - Hsueh-Tsung Kuo @Rayark

投影片: https://hackmd.io/@fieliapm/Bk48ziTj8#/

首先講者先介紹了 Go Error 系統的一些常被人詬病的問題:

  • error 包含的資訊過少
  • 不容易瞭解錯誤,拆包(摘解 error)與包裝

Go 1.13 的 error

可以參考一下這篇 Working with Errors in Go 1.13 ,可以透過 Warp 跟 UnWarp 來包裝與拆解 Errors 。

  • 有沒有辦法 Inspect ?
    • 透過 error.Is() 來判斷是不是同一個,或是透過 error.As()判斷是不是同一種類別 (type assertion)。
  • Go Error system sucks, 可以參考 Rust 的 error handling 與 Trait std::error::Error

  • https://github.com/pkg/errors 不錯用,但是無法解析底層的 errors (因為跟底層的 standard error 不相容)。參考文章 Can new Go errors wrapper replace pkg/errors?

參考鏈結

活動小結

立即加入「LINE開發者官方社群」官方帳號,就能收到第一手Meetup活動,或與開發者計畫有關的最新消息的推播通知。▼

「LINE開發者官方社群」官方帳號ID:@line_tw_dev

關於「LINE開發社群計畫」

LINE今年年初在台灣啟動「LINE開發社群計畫」,將長期投入人力與資源在台灣舉辦對內對外、線上線下的開發者社群聚會、徵才日、開發者大會等,已經舉辦30場以上的活動。歡迎讀者們能夠持續回來察看最新的狀況。詳情請看:


Buy Me A Coffee

Evan

Attitude is everything