三件套|青训营笔记

108 阅读2分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 5 天。

官方文档地址:

github.com/cloudwego/h…

github.com/cloudwego/k…

github.com/go-gorm/gor…

一、 Gorm

介绍

Gorm是—个已经迭代了10年+的功能强大的ORM框架,在字节内部被广泛使用并且拥有非常丰富的开源扩展。

基本使用

1.定义gorm model(默认) 2.为model定义表名 3.连接数据库 4.创建数据 5.查询数据 6.更新数据 7.删除数据

(Gorm使用名为ID的字段作为主键,使用结构体的蛇形负数作为表名,字段名的蛇形作为列名,使用CreatedAt、UpdatedAt字段作为创建、更新时间。)

数据库

Gorm目前支持MySQL、SQLServer、PostgreSQL、SQLite。Gorm通过驱动来连接数据库,如果需要连接其它类型的数据库,可以复用/自行开发驱动。

二、Kitex

介绍

Kitex是字节内部的Golang微服务RPC框架,具有高性能、强可扩展的主要特点,支持多协议并且拥有丰富的开源扩展。

定义IDL

使用IDL定义服务与接口 如果我们要进行RPC,就需要知道对方的接口是什么,需要传什么参数,同时也需要知道返回值是什么样的。这时候,就需要通过IDL来约定双方的协议,就像在写代码的时候需要调用某个函数,我们需要知道函数签名一样。

Kitex命令

使用kitex -module example -service example echo.thrift命令生成代码。 上述命令中,-module 表示生成的该项目的 go module 名,-service 表明我们要生成一个服务端项目,后面紧跟的 example 为该服务的名字。最后一个参数则为该服务的 IDL 文件。

三、 Hertz

介绍

Hertz是字节内部的HTTP框架,参考了其他开源框架的优势,结合字节跳动内部的需求,具有高易用性、高性能、高扩展性特点。

Hertz路由

Hertz提供了GET、POST、PUT、DELETE、ANY等方法用于注册路由。

Hertz提供了路由组( Group)的能力,用于支持路由分组的功能

Hertz提供了路由组( Group)的能力,用于支持路由分组的功能

Hertz代码生成工具

Hertz提供了代码生成工具Hz,通过定义IDL文件即可生成对应的基础服务代码。

收获:

通过本次课程的学习,了解了Gorm、Kitex、Hertz的基本用法与常见的API;基本学会了Go三件套的使用方法,可以尝试简单的发送请求与响应。