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

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

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

​​偏激性:​​ 评论过度贬低了前后端分离、微服务及其他语言框架,将其固有的挑战(复杂性、性能瓶颈可能是设计不良的结果而非架构本身)简单等同于失败,并武断地定义了“99%”的网站需求(这无法证实)和所有开发者的偏好(这不符合现实)。对 AI 赋能的能力也过于乐观。
shellic
50 天前
Laravel
ultimate42
50 天前
@bugcreator 你真深入用过 prisma 吗? prisma 在修改字段类型或字段名的时候才会删表吧,而且还需要你手动确认,新增字段怎么会删表,prisma 的痛点是得手动处理嵌套层级还有时区的问题
cKnight
50 天前
自己对 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
50 天前
php 的 orm 是所有语言最好用的 务必强大
kxg3030
50 天前
@isSamle 算了吧 django 的 orm 很烂~
coderzhangsan
50 天前
rails 以及吸收它理念设计其他框架,例如 laravel
spritecn
50 天前
@serverKnignt mybais-plus 不封装也挺好用的,我们只是因为主键用 UUID,做了一些通用查询
liuxey
50 天前
当年的 rails spring 都要给它让道
irisdev
50 天前
最好用的 orm 一定是.net 平台的,linq 、lambda 、扩展方法、表达式树,这些特性和 orm 很契合
qcbf111
50 天前
为什么不用 mongodb 呢?
v2er119
50 天前
不限语言?
delphi 的 bed ,一个 grid 包含所有批量 单行,单格 增删改查 分页,滚动加载,一行代码不用写。
v2er119
50 天前
不限语言?
delphi 的 bed ,一个 grid 包含所有(批量 、单行、单格) 增删改查 分页,滚动加载,所见所得,一行代码不用写。
lmshl
50 天前
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
50 天前
@sxszzhrrt EF 真的不太行,还得是 dapper
eastcukt
50 天前
看到上面那些代码标识的 where ,order by 就头痛,直接写 sql 简洁清晰不好吗
ericguo
50 天前
@s5s5 疑似 AI 生成内容,朋友你在玩火啊!
cloudzhou
50 天前
@zpvip 然后 Rails 的市场占有率低到几乎工作都找不到,早先我第一次接触 Django ,相对 Java 世界耳目一新,惊为天人,但是两边开发之后,理解了静动态语言的各自适应处,理解为什么大型开发还是 Java/C#/Go 的选择

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

@XCFOX 老哥能不能详细讲一下这一点,搜索了一下,感觉没太看出和原来的 orm 有啥区别。
kakki
50 天前
ROR

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

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

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

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

© 2021 V2EX