###### tags: `Web` `Backend` `GO` # Hello GO-Zero 近期讀書會開始實作DDD專案,負責後端Gateway部分成員使用Go語言並使用[Go-Zero Framework](https://github.com/tal-tech/go-zero)。 因為第一次使用GO,稍微根據成員的筆記記錄一下如何安裝並把專案實際Run起來。 ## [Install GO (On Linux)](https://github.com/codesensegroup/codesense-dintendo-migration) ### Install Gvm (Go Version Manager) ``` bash < <(curl -s -S -L https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer) source ~/.gvm/scripts/gvm ``` #### OS Ubuntu/Debian ``` sudo apt-get install binutils bison gcc make build-essential -y # troubleshooting sudo sed -i -r -e 's/^(set -e)$/#\1/' /var/lib/dpkg/info/libc6\:amd64.postinst sudo apt --fix-broken install -y ``` #### RedHat/CentOS ``` sudo yum install curl sudo yum install git sudo yum install make sudo yum install bison sudo yum install gcc sudo yum install glibc-devel ``` ## Usage Gvm 列出目前 gvm 可安裝的所有 Go 版本 ``` gvm listall # print ... gvm gos (available) go1 . . . go1.16.2 go1.16.3 go1.16.4 go1.16.5 go1.16.6 go1.16.7 go1.17 go1.17beta1 go1.17rc1 go1.17rc2 release.r56 release.r57 release.r58 . . . ``` ## 安裝 go1.17 版本 ``` gvm install go1.17 --binary ``` ### 設定目前要用的 Go 版本(並設定為預設版本) ``` gvm use go1.17 --default ``` ### 確認目前執行的 Go 版本 ``` go version ``` ## [Install Goctl (On Linux)](https://github.com/tal-tech/go-zero) 在這我們使用Goctl快速生成go-zero框架專案,需要事先安裝 ``` $ GO111MODULE=on GOPROXY=https://goproxy.cn/,direct go get -u github.com/tal-tech/go-zero/tools/goctl ``` 安裝Goctl相關Package ``` go get -u github.com/tal-tech/go-zero/... ``` 上述安裝好後即可使用 ``` $ goctl -v ``` 看goctl版本 ## WSL配置設定 ### 配置檔修改 ``` vim ~/.zshrc ``` 在最後一行寫入 ```= # gvm source ~/.gvm/scripts/gvm ``` ![](https://i.imgur.com/HwLmEiL.png) 此時從開WSL,設置就不會跑掉 上述設置安裝完成後,可點選下方連結實作實際專案,照著文內的步驟就可以跑一個初步API功能 ## [快速開發單體服務測試](https://go-zero.dev/monolithic-service.html)