September 23rd, 2020
前言
大家好,我是 LINE Taiwan 的 Tech Evangelist - Evan Lin。這次很開心受到 Golang 社群的邀請,參加了 “Golang Taipei Gathering #54” 的聚會活動,並且分享 Golang 開發的一些技巧與個人開發的心得。在此也跟各位分享本次參與的心得,並且也希望透過社群分享的力量能夠讓 Golang 更受到人了解。
- 社群 Chatbots Meetup: https://www.meetup.com/golang-taipei-meetup
- 本次活動網頁: 活動網址
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?
參考鏈結
- Working with Errors in Go 1.13
- Rust 的 error handling
- Rust std::error
- Can new Go errors wrapper replace pkg/errors?
活動小結
立即加入「LINE開發者官方社群」官方帳號,就能收到第一手Meetup活動,或與開發者計畫有關的最新消息的推播通知。▼
「LINE開發者官方社群」官方帳號ID:@line_tw_dev
關於「LINE開發社群計畫」
LINE今年年初在台灣啟動「LINE開發社群計畫」,將長期投入人力與資源在台灣舉辦對內對外、線上線下的開發者社群聚會、徵才日、開發者大會等,已經舉辦30場以上的活動。歡迎讀者們能夠持續回來察看最新的狀況。詳情請看: