不限语言,你觉得最好用的框架和 ORM 是什么?

50 天前
 sxszzhrrt
rt ,不限语言,你觉得最好用的框架和 ORM 是什么?欢迎交流你的想法
13093 次点击
所在节点    数据库
186 条回复
niubee1
50 天前
Orm 有好用的吗?
sxszzhrrt
50 天前
@niubee1 c#里的 entity framework 我觉得非常不错
ruchee
50 天前
那必须得是祖师爷 Rails
ratazzi
50 天前
那必须是 Rails
liuhaitaoSB
50 天前
rails 这么叼吗
hwdq0012
50 天前
@sxszzhrrt #2 性能不好, 因为太好用了,所以性能不好,c#时我用的 Orm 是 dapper ,需要写一点 sql,但问题不大
0xxb
50 天前
Laravel 和 Eloquent ORM
mitoop
50 天前
这必须是 Laravel 啊
cmdOptionKana
50 天前
如果比 Rails 更好用,那大概率也是在 Rails 的基础上改进的。
1zh3n
50 天前
Prisma ,用起来很自然,心智负担很小。

事务直接放数组里面:

const [posts, totalPosts] = await prisma.$transaction([
prisma.post.findMany({ where: { title: { contains: 'prisma' } } }),
prisma.post.count(),
])
ratazzi
50 天前
夸 Laravel 还行,但是夸 Prisma 的真是没预料到,这辈子都不想再用:
根本不能算模型定义的模型
migration 根本没法用
简单的保存是有了 id 还用要 id 执行一遍查询,然后再更新,然后在获取更新后的结果
uxstone
50 天前
Spring Boot + Mybatis Plus
XCFOX
50 天前
我给 TypeScript ORM 排个名:

Drizzle > Kysely > Orchid ORM >> MikroORM > Prisma > TypeORM

Drizzle 、Kysely 已经是版本答案了:没有太花哨的功能,只需要写 SQL ,ORM | SQL Builder 将给你类型安全的查询结果。
Kysely 只是一个 SQL Builder ,类型安全方面做得也是最好的; Drizzle 在 SQL Builder 的基础上加了表结构定义,能满足表迁移的许多工作,因此把 Drizzle 排在 Kysely 前面。
Orchid ORM 非常小众,除了 SQL Builder 和表结构定义还加了许多 EntityManager | Repository 的糖,但主要还是以 SQL Builder 为主。

再之后就是传统的围绕 Entity 的 ORM 。这一类 ORM 都内置了丰富的 EntityManager | Repository 的功能,SQL Builder 功能只是作为兜底方案。这类 ORM 的通病是 Repository API 无法满足所有的 SQL 写法,到头来还是得写 SQL 。
这其中功能做的最全的是 MikroORM ,隐式事务、实体事件监听、过滤器、Migrations 、Seeding ,也内置了 Knex 作为 SQL Builder 。
Prisma 的主要槽点是:使用自己发明的 Prisma Schema 用于定义表结构、使用自己发明的 Repository API 用于读写数据库,后果是增加了学习成本,隐藏了许多细节碰到问题了不太容易排查;
TypeORM 毫无疑问垫底,连最基础的空安全和类型安全都不好。隔壁 MikroORM 6.5 已经在用 `defineEntity` 尝试摆脱了对 Decorators 的依赖。TypeORM 前两年都没怎么维护,今年有了新的团队接手才开始处理积攒了几年的 issue 。
zpvip
50 天前
很多人根本没真正用过 Rails ,这已经是一种技术上的遗憾。你们天天吹前后端分离、Microservices ,殊不知那不过是自嗨,搞得整个项目复杂化、性能折腾、调试痛苦,用户体验倒退, 成天看着菊花转啊转。Rails 告诉你:什么是高效、简洁和稳健。

Rails 的开发效率是任何 JS 、C#、Java 、Python 框架都望尘莫及的。一个标准的 CRUD 网站,加上各种 Gems, 几小时就能上线一个带 RBAC 带后台的管理系统,ActiveRecord ORM 简直是魔法,数据库操作简单得让你怀疑人生。而你们那些前后端分离、手动调接口的项目,动不动就死在同步和状态管理上。

现在有了 AI ,99% 的网站根本不需要前后端分离。以前是前端的开发者可以自己定制后端, 以前是后端的开发者, 可以让 AI 帮你写前端。如果用 Hotwire 就可以告别 React 、Vue 的冗余和复杂性,如果用 Hotwire Native 适配一下,就可以用极少的代价上线 iOS + Android.

真正做过 Rails 的人,从来不想回到 JS/Java/C# 的折磨里。Rails 不只是开发工具,它是高效网站开发的标准,其他框架,只能是“绕路”的选择.
1wlinesperday
50 天前
为什么没人喜欢 Golang 的 Ent ?
huamu
50 天前
C#中 Dapper
isSamle
50 天前
Django
masterclock
50 天前
scala 的一些 ORM ,比如 doobie
得益于 scala 语言的特性,大部分其他语言的 ORM 还有些距离
momo2789
50 天前
@1zh3n Prisma 自己就是心智负担
TanKuku
50 天前
用过最舒服的应该是 kotlin 搭配 JOOQ

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

https://ex.noerr.eu.org/t/1153288

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

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

© 2021 V2EX