这是我参与「第五届青训营 」伴学笔记创作活动的第5天
Grom
Grom是一个迭代10年+的功能强大的ORM框架,在字节内部被广泛使用并拥有非常丰富的开源扩展
天生防SQL注入的
- 定义gorm model,对应表的字段
- 实现结构体吧的Gorm提供的接口函数TableName(),返回表名
- 连接数据库
- 创建数据
db.Create() - 查询数据 First()只能查询一条数据;Find()查询多条数据。
- 结构体更新数值仅更新非0值。
CRUD
事务
开启事务,注意从tx := db.Begin()开始使用tx,而不是db。tx是db从链接池里面返回固化的链接,保证事务操作同一个链接。
避免忘记写Rollback(),自动提交事务。
Hook(钩子)
性能提高
-
关闭默认事务
-
缓存预编译语句
生态
reference
Kitex
Kitex是字节内部的Golang微服务RPC框架,具有高性能、强扩展的主要特点,Hi吃多协议并且拥有丰富的开源扩展。
go install github.com/cloudwego/kitex/tool/cmd/kitex@latest
go install github.com/cloudwego/thriftgo@latest
# 查看版本,如果not found,记得将GoPath/bin加入到PATH,如果已添加,source ~/.zshrc
kitex --version
reference
cloud.tencent.com/developer/a…
Hertz
Hertz是字节内部的HTTP框架,参考了其他开源框架的优势,结合字节内部需求,具有高易用性、高性能、高扩展特点。
- 注册路由
- 路由分组
- 路由优先级
- 参数绑定
- 中间件
- HTTP Client可以发起HTTP请求
- 生成代码框架