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

2025 年 8 月 18 日
 sxszzhrrt
rt ,不限语言,你觉得最好用的框架和 ORM 是什么?欢迎交流你的想法
16669 次点击
所在节点    数据库
186 条回复
s5s5
2025 年 8 月 19 日
@zpvip #14 总结:​​

​​正确性:​​ Rails 在它所擅长的领域(尤其是快速构建 CRUD 密集型 Web 应用)确实拥有极高的开发效率、简洁优雅的设计(如 ActiveRecord 、Hotwire )和强大的生态系统。它是​​一个极其优秀的选择​​。

​​偏激性:​​ 评论过度贬低了前后端分离、微服务及其他语言框架,将其固有的挑战(复杂性、性能瓶颈可能是设计不良的结果而非架构本身)简单等同于失败,并武断地定义了“99%”的网站需求(这无法证实)和所有开发者的偏好(这不符合现实)。对 AI 赋能的能力也过于乐观。
shellic
2025 年 8 月 19 日
Laravel
ultimate42
2025 年 8 月 19 日
@bugcreator 你真深入用过 prisma 吗? prisma 在修改字段类型或字段名的时候才会删表吧,而且还需要你手动确认,新增字段怎么会删表,prisma 的痛点是得手动处理嵌套层级还有时区的问题
cKnight
2025 年 8 月 19 日
自己对 mybais-plus 进行了二次封装,感觉挺好用的。贴两个例子
@Override
public PageVO<AiChatVO> queryChatPage(AiChatReq aiChatReq) {
SysCacheUserDto adminUserInfo = getAdminUserInfo();
return select(aiChatMapper)
.where()
.eq(AiChat::getUserId,adminUserInfo.getId())
.orderDesc(AiChat::getCreateTime)
.page(aiChatReq, AiChatVO.class);
}

@Override
public Map<Long,ChatRecordMsgJsonDto> queryMsg(List<Long> ids) {
if (CollectionUtils.isEmpty(ids)){
return Map.of();
}
return where(aiChatRecordMsgMapper)
.in(BaseDO::getId, ids)
.hasMap(
BaseDO::getId,
v-> JSONObject.parseObject(v.getMsgDetail().toString(),ChatRecordMsgJsonDto.class)
);
kxg3030
2025 年 8 月 19 日
php 的 orm 是所有语言最好用的 务必强大
kxg3030
2025 年 8 月 19 日
@isSamle 算了吧 django 的 orm 很烂~
coderzhangsan
2025 年 8 月 19 日
rails 以及吸收它理念设计其他框架,例如 laravel
spritecn
2025 年 8 月 19 日
@serverKnignt mybais-plus 不封装也挺好用的,我们只是因为主键用 UUID,做了一些通用查询
auin
2025 年 8 月 19 日
当年的 rails spring 都要给它让道
irisdev
2025 年 8 月 19 日
最好用的 orm 一定是.net 平台的,linq 、lambda 、扩展方法、表达式树,这些特性和 orm 很契合
qcbf111
2025 年 8 月 19 日
为什么不用 mongodb 呢?
v2er119
2025 年 8 月 19 日
不限语言?
delphi 的 bed ,一个 grid 包含所有批量 单行,单格 增删改查 分页,滚动加载,一行代码不用写。
v2er119
2025 年 8 月 19 日
不限语言?
delphi 的 bed ,一个 grid 包含所有(批量 、单行、单格) 增删改查 分页,滚动加载,所见所得,一行代码不用写。
lmshl
2025 年 8 月 19 日
Scala 的 Quill, doobie
https://zio.dev/zio-quill/
https://typelevel.org/doobie/

Rust 的 SQLx
https://github.com/launchbadge/sqlx

我看中的是类型安全,编译期错误检查。不要有自作聪明的 DSL ,越接近 raw SQL 越好。
因为 SQL 才是真正通用的知识,任何妄图在编码中曲解或隐藏 SQL 的 ORM 框架我觉得都是垃圾。(此处点名批评 Hibernate 与同类框架)
vergilgao
2025 年 8 月 19 日
@sxszzhrrt EF 真的不太行,还得是 dapper
eastcukt
2025 年 8 月 19 日
看到上面那些代码标识的 where ,order by 就头痛,直接写 sql 简洁清晰不好吗
ericguo
2025 年 8 月 19 日
@s5s5 疑似 AI 生成内容,朋友你在玩火啊!
cloudzhou
2025 年 8 月 19 日
@zpvip 然后 Rails 的市场占有率低到几乎工作都找不到,早先我第一次接触 Django ,相对 Java 世界耳目一新,惊为天人,但是两边开发之后,理解了静动态语言的各自适应处,理解为什么大型开发还是 Java/C#/Go 的选择

而有了 AI ,让静态语言开发更容易了,之前的繁琐细节更被磨平了
大型项目开发,第一要素不是高效,而是可维护、可持续
jchnxu
2025 年 8 月 19 日
> 没有太花哨的功能,只需要写 SQL ,ORM | SQL Builder 将给你类型安全的查询结果。

@XCFOX 老哥能不能详细讲一下这一点,搜索了一下,感觉没太看出和原来的 orm 有啥区别。
kakki
2025 年 8 月 19 日
ROR

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

https://v2ex.ih06.com/t/1153288

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

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

© 2021 V2EX