这是我参与「第五届青训营 」伴学笔记创作活动的第 5 天
一、本堂课重点内容
本堂课的知识要点有哪些?
Go框架三件套(Web/RPC/ORM)
- 1.Gorm
- 2.Kitex
- 3.Hertz
二、详细知识点介绍
本堂课介绍了哪些知识点?
Gorm
- Gorm的基本使用
- 定义gorm model
- 为model定义表名
- 连接数据库
- 创建数据
- 查询数据
- 更新数据
- 删除数据
- Gorm支持的数据库
- Gorm目前支持MySQL、SQLServer、PostgreSQL
- Gorm通过驱动来连接数据库,如果需要连接其它类型的数据库,可以复用/自行开发驱动
- Gorm 创建数据
- 如何使用 Upsert ?
- 如何使用默认值?
- Gorm 查询数据
- Gorm 更新数据
- Gorm 删除数据
- 物理删除
- 软删除
- Gorm 事务
- Grom 提供了Begin、Commit、Rollback方法用于使用事务
- Grom 提供了Tansaction 方法用于自动提交事务,避免用户漏写Commit、Rollback
- Gorm Hook
- Gorm 在提供了CURD的 Hook 能力
- Hook是在创建、查询、更新、删除等操作之前、之后自动调用的函数
- 如果任何Hook返回错误,Gorm将停止后续的操作并回滚事务。
- Gorm 性能提高
- Gorm 生态
Kitex
- 安装Kitex代码生成工具
- 定义IDL
- 使用IDL定义服务与接口
- Kitex生成代码
- 使用 kitex -module example -service example echo.thrift 命令生成代码
- Kitex 基本使用
- 服务默认监听8888端口
- Kitex Client 发起请求
- 创建Client
- 发起请求
- Kitex 服务注册与发现
- 目前Kitex的服务注册与发现已经对接了主流的服务注册与发现中心,如ETCD,Nacos等
- Kitex 生态
Hertz
- Hertz 基本使用
- Hertz 路由
- Hertz提供了GET、POST、PUT、DELETE、ANY等方法用于注册路由
- Hertz提供了路由器(Group)的能力,用于支持路由分组的功能。
- Hertz提供了参数路径和通配路由,路由的优先级为:静态路由 > 命名路由 > 通配路由
- Hertz 参数绑定
- Hertz 提供了Bind、Validate、BindAndValidate函数用于进行参数绑定和校验
- Hertz 中间件
- Hertz的中间件主要分为客户端中间件和服务端中间件
- Hertz Client
- Hertz 代码生成工具
- Hertz 性能
- Hertz 生态