Go 语言三件套 | 青训营笔记

96 阅读2分钟

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

本文为青训营课程笔记,配合原课程食用效果更佳哦~

课程笔记

一、Grom(ORM框架)

  1. 特点

    • Grom是一个迭代了10年多的强大ORM框架,有丰富的开源扩展
  2. 使用方法

    • 首先定义grom model,然后命名
    • 接下来连接数据库,即可进行数据操作
  3. 支持:MySQL、SQLServer、SQLite等

  4. 注意点:

    • 使用First,查不到数据返回ErrRecordNotFound
    • 结构体作为条件查询时,不会查询零值字段,可用map
    • Struct不会更新零值,可用Mao或Select选择
    • 物理删除后无法恢复,而软删除后不可正常访问,可用Unscoped找到
    • Transaction方法可自动提交,不用Commit
    • hook提高了CURD的能力,若其返回错误,自动停止操作并回滚事务

二、Kitex(RPC框架)

  1. 特点

    • 高性能、强扩展,支持多协议,有丰富的开源扩展
  2. 使用

    • 不支持Windows(不完善)
    • 使用IDL定义服务接口
    • kitex -module example -service example echo.thrift 生成代码
    • 服务器默认监听8888端口

三、Hertz(HTTP框架)

  1. 特点

    • 高易用、高性能、高扩展性
  2. 使用

    • 提供GET、POST、PUT、DELETE、ANY等方法用于注册路由
    • 提供路由组,提供参数路由和通配路由,优先级:静态>命名>通配路由
    • 提供Bind、Validate、BindAndValidate函数用于参数绑定和校验
    • Hertz中间件分为主要分为客户端中间件和服务端中间件
    • HTTP Client可用于发送HTTP请求
    • 提供代码生成工具Hz,定义IDL即可生成对应基础服务代码

总结收获

通过样例与知识点结合的方式,学到了一些GO语言三件套的基本使用方式;

通过样例的讲解,更了解了具体的三件套使用技巧;

又是收获满满的一天

引用参考

bytedance.feishu.cn/file/boxcnK…

juejin.cn/post/718952…