如题,同问,观察了一下,go-zero 用的是自己封装的 sqlx ,还可以理解是最简化,但是完全没好到哪儿去,复杂 sql 很麻烦,kratos 直接用了国外的 Ent ,其他的几个没接触过,想知道这样的考量是什么?
![]() | 1 hellojukay 310 天前 我一直都用 gorm ,同事也用 gorm |
![]() | 2 shakaraka PRO bun 比 gorm 好用很多 |
3 gvison 310 天前 ![]() 这个要问原作者的自己的考量了。 gorm 提供了大量的抽象层和自动化功能,内部使用了不少的反射操作,在处理复杂 SQL 或高并发场景时,性能不够好,在简单查询和标准 CRUD 操作上,grom 通常能够提供足够的性能了。 这个微服务框架默认使用的是 gorm ,也可以使用自己熟悉的 orm 替代 gorm 。 https://github.com/zhufuyi/sponge |
4 securityCoding 310 天前 可读性吧 ,国内互联网大多是单表查询用不到那些高级玩意 |
5 leexsh31 310 天前 ![]() 字节都用 gorm 吧 gorm 作者也在字节 |
![]() | 6 lasuar 309 天前 最近遇到的 gorm 硬伤:假设一个表有很多字段(数十个),在查询时,对于 A 字段,我要使用函数,例如地理数据:`astext(geometry) AS geometry`,其他字段不变,使用 gorm ,似乎没有 API 实现这个需求,只能手动 select(all_fields...)。 |
![]() | 8 cdx 309 天前 ![]() 可能是把组员的 sql 水平尽量拉到同一水平线上。ent 是完全的 go 代码,增删改查基本不用去写 sql ,直接使用 ent 生成的 go 代码即可 |
9 Baloneo 309 天前 不好用 |
![]() | 10 laikicka 309 天前 golang 上的 orm 都不怎么好用.. |
![]() | 11 sngxx 309 天前 gorm xorm 都有用 |
![]() | 12 hankli 309 天前 难道没有人用 https://github.com/go-jet/jet 吗? 非常好用! |
14 yuzuhi 309 天前 没有人提 ent 吗?最近正打算试试看,用gorm 总有一种就是在写原生 sql 的感觉 |
![]() | 16 bv 309 天前 @yuzuhi 咋不试试 gorm/gen https://gorm.io/gen/query.html |
17 ninjashixuan 309 天前 一般拆成微服务,大多服务不会写复杂的 sql ,毕竟微服务数据库都是拆分很细了,复杂的联表查询自然少,自然要个简单的 orm , 个人猜测。 |
![]() | 18 qloog 303 天前 目前用的最多的还是 gorm, 也了解过 sqlc (基于 sql 生成代码) 如楼上上上...所说, gorm 作者在字节,经过很多线上场景的考验,所以性能问题不用考虑(字节的体量你懂的),是经过大量优化的,同时 gorm 提供了 基于数据库表生成代码,还支持通过编写复杂 sql 生成代码,非常方便,也可以避免常见的 SQL 注入 很多框架还是用 gorm 的,比如: https://github.com/go-eagle/eagle |
![]() | 20 shellcodecow 297 天前 jinzhu 去字节啦? 之前还在 longbridge 的 |
21 fxjson 283 天前 sqlx 这个库原生写,也不错,我自己用 gin 开发了一个开箱即用框架 https://github.com/fanqingxuan/go-gin ,使用的 gorm |