Gorm
gorm是Golang语言中一个已经迭代数十年且功能强大、性能极好的ORM框架。
ORM:Object Relational Mapping(对象关系映射),其主要作用是在编程中,把面向对象的概念跟数据库中表的概念对应起来,
简单来说,在golang中,自定义的一个结构体对应着一张表,结构体的实例则对应着表中的一条记录。
Kitex
Kitex是字节内部Golang微服务RPC框架 具有高性能、强可扩展的主要特点 支持多协议并且拥有丰富的开源扩展
Hertz
Hertz是字节内部的Http框架 参考了其他开源框架的优势 结合字节跳动内部的需求 具有高可用、高性能、高扩展性的特点
三件套使用
Gorm
声明模型
模型定义
模型是标准的 struct,由 Go 的基本数据类型、实现了 Scanner 和 Valuer 接口的自定义类型及其指针或别名组成
约定
GORM 倾向于约定优于配置
默认情况下,GORM 使用 ID 作为主键,使用结构体名的 蛇形复数 作为表名,字段名的 蛇形 作为列名,并使用 CreatedAt、UpdatedAt 字段追踪创建、更新时间
gorm.Model
GORM 定义一个 gorm.Model 结构体,其包括字段 ID、CreatedAt、UpdatedAt、DeletedAt
连接到数据库
GORM 官方支持的数据库类型有: MySQL, PostgreSQL, SQlite, SQL Server
Kitex
安装
Kitex目前对Windows的支持不完善,建议使用虚拟机或WSL2
编写IDL IDL是什么:IDL 全称是 Interface Definition Language,接口定义语言
为什么使用IDL:要进行 RPC,就需要知道对方的接口是什么,需要传什么参数,同时也需要知道返回值是什么样的,就好比两个人之间交流,需要保证在说的是同一个语言、同一件事。 这时候,就需要通过 IDL 来约定双方的协议,就像在写代码的时候需要调用某个函数,我们需要知道函数签名一样。
Hertz
安装命令行工具hz 首先,我们需要安装使用demo所需要的命令行工具 hz:
确保 GOPATH 环境变量已经被正确地定义(例如 export GOPATH=~/go)并且将GOPATH/bin:$PATH);请勿将 GOPATH 设置为当前用户没有读写权限的目录
安装 hz:go install github.com/cloudwego/hertz/cmd/hz@latest