第六届字节跳动青训营第四课 | 青训营

87 阅读2分钟

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环境变量之中(例如exportPATH=GOPATH/bin添加到 PATH 环境变量之中(例如 export PATH=GOPATH/bin:$PATH);请勿将 GOPATH 设置为当前用户没有读写权限的目录

安装 hz:go install github.com/cloudwego/hertz/cmd/hz@latest