## 初始化使用
* go mod init
* go mod tidy | go install
* swag init
* sh scripts/start.sh
## go.mod
* 使用viper/remote包会报错需添加:
* replace google.golang.org/grpc => google.golang.org/grpc v1.28.0
- Swagger 接口文档生成
- 框架:go-gin (api + grpc)
- 反向代理与负载均衡
- api网关
- 服务注册与发现
- 服务健康检查
- consul的key-value+viper 实现 动态配置值
- zap日志模块
- loki+promatil+grafana
- prometheus + grafana
- Prometheus
- pprof 性能剖析
- gorm+pgsql
- gorm文档:https://jasperxu.github.io/gorm-zh/advanced.html
- 生成uuid 雪花算法
- 验证码
- 密码加密(hash)验证密码
- jwt token
- 多层缓存构建
- 减少镜像体积
go get -v -u github.com/golang/protobuf/proto
go get -v -u github.com/golang/protobuf/protoc-gen-go
- docker部署
- gitlab ci cd
- git cz模块
- git remote -v 查看远程仓库地址
- git branch 查看当前分支
- 微信开发
- 微信小程序
- 微信公众号
- 微信支付
## viper配置
可读取多个配置文件
x := viper.New()
y := viper.New()
x.SetDefault("ContentDir", "content")
y.SetDefault("ContentDir", "foobar")
##构造一个对象参数
map[string]string 如果是这样定义则value都为string
inpayload := map[string]interface{}{
"account": "3345472145214",
"name": "lk",
"age": 18,
}