Rust 两次入门后,尝试写一个 web 项目,懵逼中~

161 天前
 5261

尝试多次入门后,用了以下一些框架

axum:web framwork sqlx:sqlboy

写着写着感觉用 rust 写 web 项目总感觉哪里味不对,一直在反思这 rust 写 web 应用真是适合吗?

就目前 orm 框架 sqlx 、seaorm 、diesel 都还在讨论哪个牛逼~

不像 Java ,mybatis 用起来那么爽~ 我既想要 orm 的字段映射到对象,也想要自定义查询的灵活~

6655 次点击
所在节点    Rust
59 条回复
5261
161 天前
@iyaozhen 嗯,对我来说就是熟悉下整个流程,估计一开始我对 Rust 的定位没看清楚
5261
161 天前
@iyaozhen 你们用 Rust 主要用在什么场景呢
maichael
161 天前
学新语言切忌新刀砍老瓜和拿着刀找瓜,你已经有可以砍 Web 的刀了,然后你还找一把刀来砍 Web ,然后你还希望它跟第一把刀一模一样,那干嘛不用原来那把呢?
springz
161 天前
salvo 我感觉更像 go 生态的 gin ,用起来简单,没太多复杂概念。我一般是 salvo + sea-query 。
XiLingHost
161 天前
rust 感觉适合用来做中间件和底层库,写应用层的东西感觉不合适
springz
161 天前
rust 写 web 优势我个人觉得就是性能+可靠吧,糊业务现在用 js/ts 更爽。
springz
161 天前
go 写业务也不合适啊,不照样一堆后端业务拿 go 写。
5261
161 天前
@maichael 主要是原来的 Java 瓜 不太适合初创或者快速项目啊,同样的 qps 场景下,Java 的 it 成本那就是无底洞!
coderzhangsan
161 天前
go 火的时候做 web 应用,rust 火的时候还做 web 应用,实在搞不懂你们的脑洞,这 2 门语言的发明初衷不是为了 web 应用的吧? web 应用已经有一大堆语言了,还在上面造轮子,你们可真有精力啊。要明白一个道理,颠覆一个行业或者取代一个产品,不是简单地把轮子重新造一遍,肯定有颠覆性的创新在里面或者极致性的体验。
springz
161 天前
啥业务能跑到 springboot 的性能问题,能到上限招人加机器不成问题。
Leviathann
161 天前
连 mybatis 都能吹上

你还是别用 rust 了
coderzhangsan
161 天前
学新语言,就一定要理解的它的设计思维,有些人总会把母语的思想代入新语言中,以母语习惯在新语言里开发和设计,如果两门语言设计思维相差很大,就会搞得不伦不类,最后母语的习惯,指责新语言蹩脚之处。
mrsecond
160 天前
@FoxRiverMan 一股 ds 味
cccssss
160 天前
@coderzhangsan 你去劝劝 tokio 的作者,别发明 axum 啊
5261
160 天前
@Leviathann 我的错,不应该技术吹! 哥们日常用啥语言开发呢?
iyaozhen
160 天前
@5261 #21 代替 c++,做客户端 lib sdk
web 也有,但都是非常极端的性能场景,go 也扛不住的那种。可能省几万个 pod 才有意义做
bjfane
160 天前
看过别人写的主机监控上报到 server 的全 rust 开源项目,自己从头理了一遍,里面还有 grpc 的东西,装在机器上的 agent 倒是合适 rust ,整体看 server 用别的语言更好,比如 go 啥的,自己写起来顺手的就行。
玩具型的 最近再看 bun 一把梭,虽然可能不适合企业级,但是一把梭就不错,还内嵌 postgre,sqlite 驱动呢
layxy
160 天前
@5261 你放心好了,我已经试了,go 的 orm 框架也有同样的问题,基本都是字段映射到对象做的挺好,一旦要自定义查询就费劲
springz
160 天前
请注意,我们在说 orm 的时候,涉及到 3 个 概念。

orm:类似 java 的 hibernate ,jpa 。php 的 Eloquent ORM ,rust 的 sea-orm ,这层讲究的是对象关系映射,把表结构映射到对象上,完全隐藏 sql 等概念。

sql-builder: 类似 java 的 mybatis ,js/ts 的 kysely 或 knex ,rust 的 sea-query ,这层讲究的是辅助更好的写 sql ,组装 sql 。并处理数据到对象的映射。并不隐藏 sql 概念,只是辅助。

sql-driver: 类似 java 的 odbc ,js/ts 的 node-pg 等,rust 的 sqlx ,这层讲究的是驱动,连接等底层,纯 sql 。 不处理映射等或者简单映射。

各有利弊,按需选择。不同层级的不要一起比较。
springz
160 天前
我最开始工作是纯 sql 然后在我工作第 2-3 年的时候我喜欢用 sql-builder ,工作第 5 年的时候我用 orm ,工作第 8 年的时候我喜欢各种 sql-builder ,现在我几乎回到了纯 sql ,只是加一些模板工具方便写 sql 。

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

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

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

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

© 2021 V2EX