Vendoring 跟 Dependency Management 是 Golang 一直想要解決的問題,透過了 go mod 原本可以管理第一層的套件。透過 go mod vendor 你可以下載完相關的依賴的套件在本地端的 vendor/ ,如果要改上一層的 dependency 就可以直接修改。 但是如果你要改的 Denpedency 上一層跟他的更上一層的 檔案呢?
以往作法可以透過 go mod edit 來一個個修改,但是一但檔案很多的時候就會相當的複雜。 有什麼方式可以快速在 local 做一些確認,也才好去發 PR 到 upstream 去? 這邊介紹一個正在做最後審核(如果通過了,預計是 go 1.18 的功能: Multi-Module Workspaces )。
Proposal 作者很貼心,還發了有著大狗狗的 Demo Video 。必須說~因為有隻可愛的大狗~我乖乖的把 proposal 看完了。
如何安裝
# 取得最新版本的 golang source code
> go install golang.org/dl/gotip@latest
# 下載某個 CL base 的 gotip
> gotip download dev.cmdgo
# 看一下修改後的相關指令,注意 initwork, editwork ...
> gotip help mod
The commands are:
download download modules to local cache
edit edit go.mod from tools or scripts
editwork edit go.work from tools or scripts
graph print module requirement graph
init initialize new module in current directory
initwork initialize workspace file
tidy add missing and remove unused modules
vendor make vendored copy of dependencies
verify verify dependencies have expected content
why explain why packages or modules are needed
Editor (VSCode) 要怎麼改
[Preference] -> [Setting] -> [Extension]
如果改成 gotip 這樣可以讓 VSCode 裡面的 Go 使用到最新版本的 gotip 來用最新功能。
一開始先跟每一位同學介紹 LINE 服務的發展歷史,從 2011 年在日本啟動 LINE 的服務之後,到了今年( 2021) 也剛好十年了,十年來的成長從溝通的平台,轉變成每一個使用者的生活平台。
LINE TODAY
作為大家天天會用的主流新聞平台,除了日常提供大家許多新聞相關題材外,其實裡面也含有許多不同的內容,如:賽事直播(近期很火紅的 NBA 季後賽也有轉播)、電影訂票、選情專區、泰國限定的樂透、電影…等等,擁有這麼多功能都是為了讓用戶可以在 LINE TODAY 中看到大家最新、最值得關注的內容。擁有這麼多功能的平台,同時也是一個跨國的產品,同時也提供給泰國、印尼以及香港。