三件套介绍
Gorm
是一个已经迭代了10+年的功能强大的 ORM 框架,在字节内部被广泛使用并且拥有非常丰富的开源扩展。
Kitex
是字节内部的 Golang 微服务 RPC 框架,具有高性能、强可扩展的主要特点,支持多协议并且拥有丰富的开源扩展。
Hertz
是字节内部的 HTTP 框架,参考了其他开源框架的优势,结合字节跳动内部的需求,具有高易用性、高性能、高扩展性特点。
Gorm
GORM 指南 | GORM - The fantastic ORM library for Golang, aims to be developer friendly.
- Gorm 的约定
1、Gorm 使用名为 ID 的字段作为主键。
2、如果没有定义 TableName() 方法,使用结构体的蛇形复数作为表名。
3、列名为字段名的蛇形小写。
4、使用 CreatedAt、UpdatedAt 字段作为创建、更新时间。 - Gorm 的基本操作
创新,查询,更新,删除等等 - Gorm 支持的数据库
Gorm 目前支持 MySQL、SQLServer、PostgreSQL、SQLite。Gorm 通过驱动来连接数据库,如果需要连接其它类型的数据库,可以复用/自行开发驱动。 - Gorm 事务
Gorm 提供了 Begin、Commit、Rollback 方法用于使用事务。 - Gorm 扩展生态、
Kitex
Kitex 目前对 Windows 的支持不完善,如果本地开发环境是 Windows 建议使用虚拟机或 WSL2。
- 使用 IDL 定义服务与接口
- Kitex 服务注册与发现
目前 Kitex 的服务注册与发现已经对接了主流了服务注册与发现中心,如 ETCD,Nacos 等。 - Kitex 生态
Hertz
- Hertz 基本使用
- Hertz 路由
1、提供了 GET、POST、PUT、DELETE、ANY 等方法用于注册路由。
2、提供了路由组(Group)的能力,用于支持路由分组的功能,同时中间件也可以注册到路由组上。
3、提供了参数路由和通配路由,路由的优先级为:静态路由>命名路由>通配路由。 - Hertz 参数
提供了 Bind、Validate、BindAndValidate 函数用于进行参数绑定和校验。 - Hertz 中间件
主要分为客户端中间件与服务端中间件。 - Hertz Client
提供了 HTTP Client 用于帮助用户发送 HTTP 请求。 Hertz 代码生成工具 Hz 通过定义 IDL(inteface description language) 文件即可生成对应的基础服务代码。 - Hertz生态