这是我参与「第五届青训营 」伴学笔记创作活动的第 6 天
Gorm
- 使用名为ID的字段作为主键
- 使用结构体的蛇形负数作为表名
- 字段名的蛇形作为列名
- 使用CreatedAt,UpdatedAt字段作为创建更新时间
- 支持MySQL、SQLServer、PostgreSQL、SQLite
update
使用clause.OnConflict处理数据冲突
查询
- 使用First时,需要注意查询不到数据会返回ErrRecordNotFound
- 使用Find时,不会返回查询错误,返回空字符串
- 使用结构体作为条件查询时,只会查询非零值字段
- 更新Struct时,只会更新零值,若需要更新零值,选择使用Map或者Select
Kitex
基于Golang的微服务RPC框架
go install github.com/cloudwego/kitex/tool/cmd/kitex@latest
go install github.com/cloudwego/thriftgo@latest
微服务RPC框架:Serialization 序列化,Transport 传输
cd kitex-examples/hello
go run .
# client2
go run ./client
修改hello.thrift
kitex -service a.b.c hello.thrift
# 若当前目录不在 $GOPATH/src 下,需要加上 -module 参数,一般为 go.mod 下的名字
kitex -module "your_module_name" -service a.b.c hello.thrift
IDL(接口定义语言, Interface Definition Language)
- thrift thrift.apache.org/docs/idl
- proto3
序列化协议
- thrift
- protobuf
消息协议
- Thrift
- Kitex Protobuf
- gRPC
传输协议
- TTHeader - Thrift Kitex Protobuf
- HTTP2 - gRPC
hertz
Golang微服务HTTP框架
笔记项目
https://github.com/cloudwego/kitex-examples
docker build -t kitex-examples .