初识 GO 框架 | 青训营笔记

79 阅读2分钟

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

重点内容

老师讲了三个Go语言开发框架,并且在字节内部广泛使用。

  • Gorm 功能强大的ORM框架,用来操作数据库
  • Kitex 字节内部Golang微服务RPC框架,将单体服务抽象出来供其他服务使用
  • Hertz 字节内部HTTP框架,API服务,用作接口聚合,参考了其他开源框架的优势,结合字节内部的需求(据说性能比Gin还要快几倍)

听老师说的最多的一句话就是"看官方文档,可以提issue和pr",看官方文档进行开发,如果可以直接拿来用就减少自己的二次开发,官方文档 比 我们和其他文章 考虑地更全,方便我们按照行业规范进行开发,减少出错。

GORM

在课堂中记录的一点零碎的小知识点。

do.Model()里面的User可以用来作条件判断,但更多的是传递表名。

不处理冲突,如果主键冲突程序就会报错,就无法写入数据库中。

数据库驱动是结合文档来看,要实现几个对应的接口。

关于链式调用,注意看官方文档,按照规范写代码,仅仅看网上那些写得不严谨的文章拿来用,可能会导致线上bug。

关于数据库查询,如果数据量较小比如100条,尽量批量查询,不要使用for循环查询,如果涉及10000条数据的多表查询,可以使用for循环查询,这样对数据库的压力较小。数据库执行业务时,一开始用的是读写分离,数据量上来的时候用分表,当数据库承受不住的时候(性能达到瓶颈,比如单个表几百万),就要考虑分片库方案。

Gorm只需要初始化一次,全局用就可以了。如果每次都初始化新的,底层的数据库连接是无法用的,性能会很差。