这是我参与「第五届青训营 」伴学笔记创作活动的第 5 天
一、本堂课重点内容:
1. Gorm
2. KiteX
3. Hertz
二、详细知识点介绍:
1. Gorm
-
GORM目前支持MySQL、 SQLServer、 PostgresQL、 SQLite。
-
GORM基本使用
- import
- "gorm.io/driver/mysql"
- "gorm.io/gorm"
- 表结构及表名
- 数据库(表名user)
- Go中
- 务必定义表名的方法,否则结构体的蛇形复数作为表名(users)
- 参名首字母大写
- 数据库(表名user)
- 连接数据库
- 插入数据
- 查询数据
- 更新数据
- 删除数据
- import
-
Gorm事务
- Gorm提供了Begin、Commit、Rollback方法用于使用事务。
- Gorm提供了Tansaction方法用于自动提交事务,避免用户漏写Commit、 Rollbcak。
- Gorm提供了Begin、Commit、Rollback方法用于使用事务。
-
Gorm Hock
- GORM在提供了CURD的Hook能力。Hook是在创建、查询、更新、删除等操作之前、 之后自动调用的函数如果任何Hook返回错误,GORM将停正后续的操作并回滚事务。
- GORM在提供了CURD的Hook能力。Hook是在创建、查询、更新、删除等操作之前、 之后自动调用的函数如果任何Hook返回错误,GORM将停正后续的操作并回滚事务。
-
Gorm 性能提高
- 在Config里修改配置可以提高一定性能。
- 在Config里修改配置可以提高一定性能。
-
Gorm 生态
- Gorm拥有非常丰富的扩展生态,以下列举一部分常用扩展。
- GORM代码生成工具 github.com/go-gorm/gen
- GORM分片库方案 github.com/go-gorm/sha…
- GORM手动素引 github.com/go-gorm/hin…
- GORM乐观锁 github.com/go-gorm/opt…
- GORM读写分离 github.com/go-gorm/dbr…
- GORMOpenTelemetry扩展 github.com/go-gorm/ope…
- 关于更多的GORM用法可以查看Gorm的文档 gorm.cn
- Gorm拥有非常丰富的扩展生态,以下列举一部分常用扩展。
2. KiteX
- 待补充
- Kitex生态
- Kitex拥有非常丰富的扩展生态,以下列举一部分常用扩展。
- XDS扩展 nttps://github.com/kitex-contrib/xds
- opentelemetry扩展 nttps://github.com/kitex-contrib/obs-opentelemetry
- ETCD服务注册与发现扩展 github.com/kitex-contr…
- Nacos服务注册与发现扩展 nttps://github.com/kitex-contrib/registry-nacos
- Zookeeper 服务注册与发现扩展 nttps://github.com/kitex-contrib/registry-zookeeper
- polaris扩展 nttps://github.com/kitex-contrib/polaris
- 丰富的示例代码与业务Demo github.com/cloudwego/k…
- Kitex拥有非常丰富的扩展生态,以下列举一部分常用扩展。
3. Hertz
- 待补充
- Hertz生态
- Hertz拥有非常丰富的扩展生态,以下列举一部分常用扩展
- HTTP2扩展 github.com/hertz-contr…
- opentelemetry扩展 github.com/hertz-contr…
- 国际化扩展 github.com/hertz-contr…
- 反向代理扩展 github.com/hertz-contr…
- JWT鉴权扩展 github.com/hertz-contr…
- Websocket扩展 github.com/hertz-contr…
- 丰富的示例代码与业Demo github.com/cloudwego/h…
- Hertz拥有非常丰富的扩展生态,以下列举一部分常用扩展
三、实践练习例子:
- Easy Note
- 大概架构
- 大概架构
四、课后个人总结:
- 了解Gorm/Kitex/Hertz是什么
- 熟悉Gorm/Kitex/Hertz的基础用法
- 通过实战案例分析将三个框架的使用串联了起来