为什么国内的微服务框架都不用 gorm 作为微服务框架的 orm?

6 天前
 higanbana

如题,同问,观察了一下,go-zero 用的是自己封装的 sqlx ,还可以理解是最简化,但是完全没好到哪儿去,复杂 sql 很麻烦,kratos 直接用了国外的 Ent ,其他的几个没接触过,想知道这样的考量是什么?

1970 次点击
所在节点    Go 编程语言
17 条回复
hellojukay
6 天前
我一直都用 gorm ,同事也用 gorm
wunonglin
6 天前
bun 比 gorm 好用很多
gvison
6 天前
这个要问原作者的自己的考量了。

gorm 提供了大量的抽象层和自动化功能,内部使用了不少的反射操作,在处理复杂 SQL 或高并发场景时,性能不够好,在简单查询和标准 CRUD 操作上,grom 通常能够提供足够的性能了。

这个微服务框架默认使用的是 gorm ,也可以使用自己熟悉的 orm 替代 gorm 。
https://github.com/zhufuyi/sponge
securityCoding
6 天前
可读性吧 ,国内互联网大多是单表查询用不到那些高级玩意
leexsh31
6 天前
字节都用 gorm 吧 gorm 作者也在字节
lasuar
6 天前
最近遇到的 gorm 硬伤:假设一个表有很多字段(数十个),在查询时,对于 A 字段,我要使用函数,例如地理数据:`astext(geometry) AS geometry`,其他字段不变,使用 gorm ,似乎没有 API 实现这个需求,只能手动 select(all_fields...)。
liaohongxing
6 天前
框架作者喜好
cdx
6 天前
可能是把组员的 sql 水平尽量拉到同一水平线上。ent 是完全的 go 代码,增删改查基本不用去写 sql ,直接使用 ent 生成的 go 代码即可
Baloneo
6 天前
不好用
laikick
6 天前
golang 上的 orm 都不怎么好用..
sngxx
6 天前
gorm xorm 都有用
hankli
6 天前
难道没有人用 https://github.com/go-jet/jet 吗? 非常好用!
zoharSoul
6 天前
@gvison #3 这个好像没有整合依赖注入相关的啊
yuzuhi
5 天前
没有人提 ent 吗?最近正打算试试看,用 gorm 总有一种就是在写原生 sql 的感觉
gvison
5 天前
@zoharSoul 不需要依赖注入也可以在 解耦、测试性、灵活性、可扩展性 满足要求的
bv
5 天前
@yuzuhi 咋不试试 gorm/gen https://gorm.io/gen/query.html
ninjashixuan
5 天前
一般拆成微服务,大多服务不会写复杂的 sql ,毕竟微服务数据库都是拆分很细了,复杂的联表查询自然少,自然要个简单的 orm , 个人猜测。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1095255

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX