September 1st, 2019
前提
偷個懶來看一下 GopherCon 2019 ,順便了解幾個有趣的議題。
GopherCon 2019: Elena Morozova - How Uber Goes
最近 GopherCon 2019 的影片陸續上架了,歡迎大家記得去查看。一起來了解一下今年最新的分享。
今天分享一下這一場我覺得很不錯的題目,就是 How Uber Goes 。
Uber 工程師分享了從 2015 年之後導入了 Golang 之後遇到的幾個常見問題:
- 建立大量的新服務。
- 經常要切換不同的服務開發。 (Context Switching)
- 要交付全球化的服務。
而解決方式則是透過以下三種方式:
- Dependency Injection
- Consistent Code Structure
- Monorepo
由於這些問題,所以 Uber 內部首先為了方便建立不同新的服務而開發了 Dependency Injection Library - fx ( https://github.com/uber-go/fx ) ,透過 fx 開發不同新服務也變得更加的方便。 接下來有提到如何將每個不同服務會使用到的架構做一致性的架構設計,讓不同的服務之間程式碼能夠變得更好維護。最後透過 Monorepo (也就是所有的代碼都在一個很大的 repository 上面,而不是個別專案中) ,在套件版本的更動上也變得更加的方便(可以一個 commit 幫大家更新)。
Refer:
-
https://github.com/uber-go/fx
-
https://godoc.org/go.uber.org/fx
-
https://eng.uber.com/tag/uberfx/
-
https://www.youtube.com/watch?v=LDGKQY8WJEM