麻溜的脚手架 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

使用自己的命名空间可以有效减少歧义和提高辨识度, 通常建议使用自己的域名来反向命名.

当然了还有一些其他参数, 不过小白说先掌握上面这几个比较常用的吧.

本文章首发在 LearnKu.com 网站上。

上一篇 下一篇
taadis
讨论数量: 0
发起讨论 只看当前版本


暂无话题~