Skip to content

环境准备

开发流程

https://go-zero.dev/cn/docs/prepare/dev-flow

  • goctl环境准备
  • 数据库设计
  • 业务开发
  • 新建工程
  • 创建服务目录
  • 创建服务类型(api/rpc/rmq/job/script)
  • 编写api、proto文件
  • 代码生成
  • 生成数据库访问层代码model
  • 配置config,yaml变更
  • 资源依赖填充(ServiceContext)
  • 添加中间件
  • 业务代码填充
  • 错误处理

Go Module设置

查看GO111MODULE开启情况

1
2
$ go env GO111MODULE
on

开启GO111MODULE,如果已开启(即执行go env GO111MODULE结果为on)请跳过。

1
$ go env -w GO111MODULE="on"

设置GOPROXY

1
$ go env -w GOPROXY=https://goproxy.cn

设置GOMODCACHE

查看GOMODCACHE

1
2
$ go env GOMODCACHE
/Users/nocilantro/go/pkg/mod

如果目录不为空或者/dev/null,请跳过。

1
go env -w GOMODCACHE=$GOPATH/pkg/mod

Goctl安装

Goctl在go-zero项目开发着有着很大的作用,其可以有效的帮助开发者大大提高开发效率,减少代码的出错率,缩短业务开发的工作量

很多人会把 goctl 读作 go-C-T-L,这种是错误的念法,应参照 go control 读做 ɡō kənˈtrōl

1
2
# Go 1.16 及以后版本
GOPROXY=https://goproxy.cn/,direct go install github.com/zeromicro/go-zero/tools/goctl@latest

通过此命令可以将goctl工具安装到 $GOPATH/bin 目录下

如果装完没有 goctl,可以编辑一下 .zshrc, 添加以下内容

1
export PATH="$PATH:$(go env GOPATH)/bin"

然后

1
2
3
4
5
6
source .zshrc

➜  ~ goctl -v
goctl version 1.4.2 darwin/amd64
➜  ~ where goctl
/Users/nocilantro/go/bin/goctl

protoc & protoc-gen-go安装

protoc是一款用C++编写的工具,其可以将proto文件翻译为指定语言的代码。
在go-zero的微服务中,我们采用grpc进行服务间的通信,而grpc的编写就需要用到protoc和翻译成go语言rpc stub代码的插件protoc-gen-go。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
$ brew install protobuf protoc-gen-go protoc-gen-go-grpc
$ protoc --version
libprotoc x.x.x

$ go install google.golang.org/protobuf/cmd/protoc-gen-go@latest
$ go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest


➜  ~ protoc --version
libprotoc 3.8.0