有人使用 Rust 重构过旧项目吗?
原来的一个数据分析引擎,使用 C 开发的,C 开发效率太低了,debug 程序更是让人头大,打算使用 Rust 重构一下,学习了三四天,感觉 Rust 绝不是像 Python 那样看一上午就能开始项目然后边学边做的语言。
有没有用 Rust 重构过旧项目的朋友,来说说呗
自信一点把感觉去掉
也不像 go 一样,看一天就可以边学边写
空闲时间重构过之前用 C 写的项目,大概 1500 行。学习了一个月,然后开始写,中间遇到复杂的数据所有权管理,也是思考+走了狗屎运才解决,大概写了一个月完成。golang 是可以看一上午就能上手,rust 不行,遇到复杂的数据所有权没高手帮忙很难解决。
你要是 C++的 10 年老手可以这么干,新手不建议用 rust 重构任何东西。你花在理解 rust 本身的时间比你写程序的时间要多得多,而且一段时间之后,你一定会忘记当时怎么设计的。你看一下我前几天写的本地版本快照程序,就知道我说的怎么回事了。
github.com/uselibrary/rustory/tree/master/src
建议用 go,rust 错误太奇葩,有次闪退解决一天没解决掉,最后 ai 给个了方案,延时 5 秒,真的解决掉闪退问题。
我自己除了 gui 和网页前端之外的所有项目基本都用 rust 重构了
不管之前用 cpp python 还是 go, 一旦 riir 之后就再也回不去了
重构过后再看自己项目原本的代码是那么丑陋和低效
所以就很能体会为啥 riir 如此的流行,因为确实会上瘾
rust 的难度起码 go 的 5 倍以上
rust 的难度在于内存管理吧?
能用 rust 重构的,基本上都重构完了
尝试过,很快 github.com/GrinZero/dpdm-fast
尝试过,很爽。有了再一次创造的快感
要不用 zig
所有权是座山。这个你得理解很长的时间才能比较熟练,我大概有几个问题你可以看看能懂不?
- Fn,FnMut,FnOnce 有什么区别?
- 跨线程的为什么需要实现 Send ?
- Box ,Mutex ,Arc ,RefCell ,Rc 有什么区别?
在这三个问题的基础上,再问自己,为什么 Rust 中会有这些玩意儿,为什么会这么设计呢?
rust 边学边写改了一个之前 C++ 写的切换输入法小工具
也就 200 行不到代码,时间全用来查各种 api 文档了,好在最后 macos 的 rust api 库完善,硬是改下来了,全程 expect 一把梭,要不要 deref 边猜边写
用 go 重构吧。才学习了三四天,对 Rust 来说远不够。
这不叫重构吧~ 算重写了。
学了一段时间后,写过一个小项目: github.com/chenqimiao/quarkdrive-webdav
rust 入门需要一些耐心的,不是两三天就可以上手的,当然大佬除外
可以先 export 出个 C header ,然后 rust-bindgen ,新需求和需要修改的需求,可以在 rust 端完成,实现逐渐迁移(
C 开发效率太低,以我不多的经验,rust 是效率更低的。
go 和 java 都还行(至少这两的语法合乎人类的自然语言的语法习惯)
Rust 会让你知道什么叫开发效率低。所有权头很大。
压根没有必要
rust 开发效率其实更低,除了邪教爱好者基本上没啥人会 rust 重写东西
试想这样的 case ,起两个线程/协程,并发分别从两个下游接口获取数据,执行完成之后,合并这两个接口的数据并返回。
如此简单的逻辑你用 rust 写会头大的很
rust 其实培养的是一种优秀的编程习惯,最好先写 rust ,再写 c ,你先自由,后约束,当然处处碰壁。一旦掌握了所有权的精髓,你写其他语言,自然而然使用所有权的思维方式,写出的代码更健壮。
我们用 rust+pyo3 重构了原来 python+go 的项目,主要是视频流的处理,没怎么用异步 io ,确实比原来的那一套要稳定得多。边学边写应该是不可能的,我们基本上都是提前半年通知,每个人至少看完了 trpl ,以及常用的库,还要一边写一边查
#21 不认同。如果你经常用 C 做生产级别的项目的话,你会发现,合格的开发者在用 C 编程的时候,所有权是时刻牢记于心的,并非无拘无束地自由发挥。
Rust 这个奇葩玩意对所有权做了蹩脚的抽象,把它显式地提到了语法层面,虽然避免了开发者因为不称职或者粗心大意所带来的内存安全问题,但同时也降低了代码的可读性和可维护性。
或许在 security-critical 的领域(比如航空航天、军事等领域)这种妥协是必要的,但它在常规场景并不一定合适。
就好比你在自家客厅走路,戴头盔、穿全身护具,提升安全性的价值远远无法弥补其带来的不便。
开发效率低效,已放弃
尝试过,很爽。但这里是 V 站,所以我要说
Rust 是一坨屎,意义不明的垃圾发明,你只要碰了这语言就是魔怔人、教徒,并且对上面所有认为 Rust 好进行出警
上一次发游戏 demo 已经是一个月之前了。那时候素材模型还都是从商城购买的,经过自己二创使用在游戏里,但是开发过程中暴露出一个巨大的问题,就是很多素材不符合需求,要重新做难度…
1 )大家对 DSL 普遍感到鄙视,认为作用不大,实现难度也不高 其实所有高级编程语言都是 DSL ,只不过是语言的特性多与少,Agile Query 的确设计了一种新的 DS…
这篇文章的原文在这里(原文链接)(下文不是全译,也不是部分译,我只是把其总结,有我自己的发挥,但是原意大致不变),这篇文章完全是在调侃Scrum的,作者第一段就是一个免费声明,…