Rust 学习几个月之后,真正要自己写的时候就懵逼

140 天前
 5261

Rust 入门这几个月之后,主要学了 axum 、tokio 、tonic 这些后,然后准备自己写个 tg bot api 玩玩,发现已经有现成的 teloxide ,然后再这个基础上写自己的 bot api

写到一半的时候发现还是有很多内容不熟悉,看文档的时候都知道是咋回事,真正自己上手写的时候就懵逼

这种感觉真的太受挫了!

3124 次点击
所在节点    Rust
25 条回复
coderlxm
140 天前
哈哈哈这就对了 我学了 1 个月就感觉跟没学似的
5261
140 天前
@coderlxm 才 1 个月,继续加油吧,还有不少内容要学的
arloor
140 天前
纸上得来终觉浅嘿嘿,这种感觉跟学第一门编程语言应该有点像
jianjian714
140 天前
为啥要学 rust ?现在有厂开始大面积推了?
zlo309618100
140 天前
同问,为啥要学 rust
5261
140 天前
@jianjian714
@zlo309618100 别问,问就是打开编程视野,总不能在 Java 路上死绝!
nebkad
140 天前
@jianjian714 @zlo309618100
因为在使用 Rust 语言的实践过程中,创造了一些以前的编程语言不能实现的解法。
这些解法通过 Rust 语言的一些特色设计来实现,包括但不仅限于,显式声明生命周期,借用检查,等等。
所以如果你对这些解法感兴趣,例如解决什么问题,如何解决的,那么就可以去学习一下。

推广了才来学那完全没必要,推广的时候除了浅显的 hello world ,很难理解上面的举例到底是干啥的。
因为推广而学一门编程语言,就像低买高卖一样,可能可以赚钱,但可以赚钱是不太可能的
5261
140 天前
@nebkad 学完之后,Rust 的 过程宏和借用检查确实惊艳到我了!

不过恶心的也有,就是 符号是真的多,理解起来有难度,有的时候很懵逼!
yy9999
140 天前
正常的, 编程这个东西, 需要 刻意练习, 需要悟道, 积累多了, 某一天就突然一下子 "通了", "开窍了"
OneDemo
138 天前
rust ,从入门到再次入门,我都前前后后入门三次了
PTLin
138 天前
https://cheats.rs/ 建议从头到尾过一遍,确保除了宏之外的东西能看明白 80%,并且要完全理解 Language Sugar 那一章提到的内容。
5261
138 天前
@PTLin 好的,这个链接的内容我是在计划要看的
webnewobject1
137 天前
有条件的话建议学习 lambda 演算法。可以尝试去理解一下函数式编程。rust 想要理解透彻的话,还是得要学这两个的。进阶的话可以先去学一下 haskell ,然后学习一下怎么使用和组装组合子。这样的话基本上能看懂很多东西了。我也是从 oop 过来的。oop 有很多东西并不适用于 rust ,但是如果把 rust 弄清楚了。会有很多好点子用到 oop 上面
5261
137 天前
@webnewobject1 老哥目前 Rust 是主力语言还是第二语言呢
webnewobject1
136 天前
@5261 主力,fp 和 oop 为辅助,fp 提供理论支撑,oop 提供实践工具。目前亲测最好的实践就是 rust+haskell+ts 或 Python ,这样可用性较强,java 的话心智消耗太高了,而且有些设计是冲突的,所以就放弃了。golang 可以当玩具写,毕竟 ts 和他很像。
5261
136 天前
@webnewobject1 主要写底层还是中间服务呢? 我是主要 Java web 开发,rust 拿来写 web 或者业务也不知道是否合适
webnewobject1
136 天前
@5261 其实他啥都能写,不过 ui 不是很好写。个人感觉来说 web 也很合适,跟 Java 不相上下。但是呢,Java 上的很多方法论在 rust 的上是用不了的。很多思想要换过来,就比如说这个 sql ,rust 更倾向于在 rust 代码上去解决这个事情。尽量不要用原生,因为无法预期控制。让组合子去代替动态 sql ,不过现在 rust 的最大的问题就是轮子太少了。很多东西都要自己写,而且他要求就是说在写之前就得想好,不是想好细节,就是想好整个项目的大体抽象。
所以呢,它更像是将原本的程序设计变得更重要了,就是在软件工程领域上的话。如果设计不好的话就容易写不下去。这就是为什么很多人写这个东西就觉得非常难受。说通俗点就是你拉屎之前必须把这个擦屁股的动作就给想好了。
如果说你的程序设计弄得比较好,抽象结构都比较合理的话,写起来就非常爽。基本上固定下来之后跑上去的东西不用怎么写测试。只需要回顾一下逻辑对不对就行了。然后弄上去的东西基本上不需要维护。然后特定的抽象设计,还能把形式化给他引进来。这样的话甚至都不用测试,因为数学已经证明过了。(当然对于 web 来说这感觉有点像牛刀杀鸡)
总的来说就是,rust 强迫你回顾你的程序设计,降低造屎概率。
还有就是他其实不是很适合快速原型,快速原型用其他的就好了,比如说 Python 之类的。
webnewobject1
136 天前
@5261 还有一个就是非常简易的判断标准,可以看需求到底完不完善。或者说需求是要做一个可靠程序,还是说快速原型?如果是前者的话就直接上 rust ,如果是后者的话,就直接用胶水语言就行了。因为快速原型不需要搞那么多错误处理,只需要原型能跑出来就行了。
Lhcfl
135 天前
可以用 teloxide_core 这个库,是 teloxide 的 api 层,糖少一点比较方便理解
caobug
135 天前
@webnewobject1 想在 RUST 上堆屎山代码并不容易。

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

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

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

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

© 2021 V2EX