有人使用 Rust 重构过旧项目吗?

17 天前
 red13

原来的一个数据分析引擎,使用 C 开发的,C 开发效率太低了,debug 程序更是让人头大,打算使用 Rust 重构一下,学习了三四天,感觉 Rust 绝不是像 Python 那样看一上午就能开始项目然后边学边做的语言。 有没有用 Rust 重构过旧项目的朋友,来说说呗

3810 次点击
所在节点    Rust
49 条回复
Geon97
17 天前
自信一点把感觉去掉
也不像 go 一样,看一天就可以边学边写
rqzrqh
17 天前
空闲时间重构过之前用 C 写的项目,大概 1500 行。学习了一个月,然后开始写,中间遇到复杂的数据所有权管理,也是思考+走了狗屎运才解决,大概写了一个月完成。golang 是可以看一上午就能上手,rust 不行,遇到复杂的数据所有权没高手帮忙很难解决。
imes
17 天前
你要是 C++的 10 年老手可以这么干,新手不建议用 rust 重构任何东西。你花在理解 rust 本身的时间比你写程序的时间要多得多,而且一段时间之后,你一定会忘记当时怎么设计的。你看一下我前几天写的本地版本快照程序,就知道我说的怎么回事了。
https://github.com/uselibrary/rustory/tree/master/src
baba8
17 天前
建议用 go,rust 错误太奇葩,有次闪退解决一天没解决掉,最后 ai 给个了方案,延时 5 秒,真的解决掉闪退问题。
NessajCN
17 天前
我自己除了 gui 和网页前端之外的所有项目基本都用 rust 重构了
不管之前用 cpp python 还是 go, 一旦 riir 之后就再也回不去了
重构过后再看自己项目原本的代码是那么丑陋和低效
所以就很能体会为啥 riir 如此的流行,因为确实会上瘾
bli22ard
17 天前
rust 的难度起码 go 的 5 倍以上
iOCZS
17 天前
rust 的难度在于内存管理吧?
bigtan
17 天前
能用 rust 重构的,基本上都重构完了
bugyaluwang
17 天前
cccssss
17 天前
尝试过,很爽。有了再一次创造的快感
lancelock
17 天前
要不用 zig
kapaseker
17 天前
所有权是座山。这个你得理解很长的时间才能比较熟练,我大概有几个问题你可以看看能懂不?

1. Fn,FnMut,FnOnce 有什么区别?
2. 跨线程的为什么需要实现 Send ?
3. Box ,Mutex ,Arc ,RefCell ,Rc 有什么区别?

在这三个问题的基础上,再问自己,为什么 Rust 中会有这些玩意儿,为什么会这么设计呢?
noe132
17 天前
rust 边学边写改了一个之前 C++ 写的切换输入法小工具
也就 200 行不到代码,时间全用来查各种 api 文档了,好在最后 macos 的 rust api 库完善,硬是改下来了,全程 expect 一把梭,要不要 deref 边猜边写
tinybaby365
17 天前
用 go 重构吧。才学习了三四天,对 Rust 来说远不够。
memcache
17 天前
这不叫重构吧~ 算重写了。
学了一段时间后,写过一个小项目: https://github.com/chenqimiao/quarkdrive-webdav
rust 入门需要一些耐心的,不是两三天就可以上手的,当然大佬除外
xkeyC
17 天前
可以先 export 出个 C header ,然后 rust-bindgen ,新需求和需要修改的需求,可以在 rust 端完成,实现逐渐迁移(
Rickkkkkkk
17 天前
C 开发效率太低,以我不多的经验,rust 是效率更低的。

go 和 java 都还行(至少这两的语法合乎人类的自然语言的语法习惯)
skiy
17 天前
Rust 会让你知道什么叫开发效率低。所有权头很大。
MacsedProtoss
17 天前
压根没有必要
rust 开发效率其实更低,除了邪教爱好者基本上没啥人会 rust 重写东西
Rickkkkkkk
17 天前
试想这样的 case ,起两个线程/协程,并发分别从两个下游接口获取数据,执行完成之后,合并这两个接口的数据并返回。

如此简单的逻辑你用 rust 写会头大的很

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

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

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

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

© 2021 V2EX