Go 框架三件套| 青训营笔记

87 阅读1分钟

前言

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

今日学习内容

  • Gorm
  • Kitex
  • Herz

正文

Gorm

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

  1. GORM 支持的数据库

GORM 官方支持的数据库类型有: MySQL, PostgreSQL, SQlite, SQL Server。 GORM 通过驱动来连接数据库,如果需要连接其它类型的数据库,可以复用/自行开发驱动。

import (
  "gorm.io/driver/mysql"
  "gorm.io/gorm"
)

func main() {
  // 参考 https://github.com/go-sql-driver/mysql#dsn-data-source-name 获取详情
  
  dsn := "user:pass@tcp(127.0.0.1:3306)/dbname?charset=utf8mb4&parseTime=True&loc=Local"
  db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{})
}

注意: 想要正确的处理 time.Time ,您需要带上 parseTime 参数, (更多参数) 要支持完整的 UTF-8 编码,您需要将 charset=utf8 更改为 charset=utf8mb4 查看 此文章 获取详情。

  1. GROM 创建数据
  2. GORM 查询数据
  3. GORM 更新数据
  4. GORM 删除数据
  5. GORM 事务
  6. GORM HOOK
  7. GORM 性能提高
  8. GORM 扩展生态

Kitex

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

Herz

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