麻溜的脚手架 Micro New
最近气候回暖了不少…
白花花的肥肉开始映入眼帘.
腿辣么多, 不对, 服务那么多, 但套路就在那里, 如果一个个手搓去新建的话难免容易出错和那么些许繁琐.
Micro 给我们提供了非常友好的工具. 一个叫做 micro new 的脚手架.
先来看看帮助命令
micro help new
不出意外的话, Mico 会告诉你以下信息, 方便你后续下手…
NAME:
micro new - Create a service template
USAGE:
micro new [command options] [arguments...]
OPTIONS:
--namespace value Namespace for the service e.g com.example (default: "go.micro")
--type value Type of service e.g api, function, service, web (default: "service")
--fqdn value FQDN of service e.g com.example.service.service (defaults to namespace.type.alias)
--alias value Alias is the short name used as part of combined name if specified
--plugin value Specify plugins e.g --plugin=registry=etcd:broker=nats or use flag multiple times
--gopath Create the service in the gopath. (default: false)
可以看到 micro new 的作用是创建一个服务模板, 我们可以快速创建一个模板项目来进行更把更多的时间放在其他开发上.
来试试先
micro new xiaobai
不出意外的话, 输出如下:
Creating service go.micro.service.xiaobai in xiaobai
.
├── main.go
├── generate.go
├── plugin.go
├── handler
│ └── xiaobai.go
├── subscriber
│ └── xiaobai.go
├── proto\xiaobai
│ └── xiaobai.proto
├── Dockerfile
├── Makefile
├── README.md
├── .gitignore
└── go.mod
download protobuf for micro:
brew install protobuf
go get -u github.com/golang/protobuf/{proto,protoc-gen-go}
go get -u github.com/micro/protoc-gen-micro/v2
compile the proto file xiaobai.proto:
cd xiaobai
protoc --proto_path=.:$GOPATH/src --go_out=. --micro_out=. proto/xiaobai/xiaobai.proto
创建一个基本的项目模板.
还有有一些默认值需要调整来符合开发约定和自己的需求.
比如 go.mod
里模块名字没有域前缀路径
// go.mod
module xiaobai
这不大符合我们实际的预期, 可以这样调整命令参数
micro new github.com/xiaobai/xxx
这样模块路径和名称就不用二次调整了. 不过比较头疼的是会按照 GOPATH 旧的模式生成对应的路径目录
还有就是默认的服务命名空间是 go.micro
我们可以这样调整命令参数
micro new github.com/xiaobai/xxx --namespace=com.xiaobai
使用自己的命名空间可以有效减少歧义和提高辨识度, 通常建议使用自己的域名来反向命名.
当然了还有一些其他参数, 不过小白说先掌握上面这几个比较常用的吧.