- 事件总线
- 优雅处理xenv
go install github.com/comeonjy/go-kit/cmd/kit
kit new demo-project
go install \
github.com/google/wire/cmd/wire@latest \
golang.org/x/tools/cmd/stringer@latest \
github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-grpc-gateway@latest \
github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-openapiv2@latest \
google.golang.org/protocpbuf/cmd/protoc-gen-go@latest \
google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest \
github.com/envoyproxy/protoc-gen-validate@latest
.
├── api [ pb ]
├── cmd [ 程序入口 ]
├── configs [ 配置 ]
├── docs [ 文档 ]
├── internal
│ ├── domain [ DDD领域层 ]
│ │ ├── aggregate [ 聚合 ]
│ │ ├── entity [ 实体 ]
│ │ ├── repository [ 仓储接口/资源库 ]
│ │ └── valobj [ 值对象 ]
│ ├── infra [ DDD基础设施层 ]
│ │ ├── event
│ │ ├── mq
│ │ └── persistence [ 数据库持久层 ]
│ ├── server [ DDD接口层 ]
│ └── service [ DDD应用层 ]
├── main.go
├── pkg [ 工具库 ]
├── tests [ 测试包 ]
└── third_party [ 三方包 ]
版本管理( SemVer )
版本格式:主版本号.次版本号.修订号
- 主版本号:当你做了不兼容的API修改
- 次版本号:当你做了向下兼容的功能性新增
- 修订号:当你做了向下兼容的问题修正
- master:主分支(用于版本发布,始终与线上一致)
- dev:开发分支(用于开发,提测时,从dev检出release-1.0.0分支)
- release: 预发布(用于测试,测试中有问题直接修改,测试完成后合并入master和dev)
- feature-*:功能分支(用于功能开发,完成后合并到dev)
- hotfix-*:修复bug(从master分出来,完成后合并到master和dev)
- feat:新功能(feature)
- fix:修补bug
- doc::文档(documentation)
- style: 格式(不影响代码运行的变动)
- refactor:重构(即不是新增功能,也不是修改bug的代码变动)
- test:增加测试
- chore:构建过程或辅助工具的变动
import (
// 标准库
// 三方库
// 本地库
)
- 返回值结构 错误示例:
{
"code": 1001,
"msg": "数据更新失败"
}
成功示例:
{
"xxx": "xxx"
}
go-layout是根据JetBrains s.r.o 授予的免费JetBrains开源许可证与GoLand一起开发的,因此在此我要表示感谢。
© JiangYang, 2020~time.Now
Released under the Apache License
[1] Factor12
[2] DDD分层架构实践