Rust 入门这几个月之后,主要学了 axum 、tokio 、tonic 这些后,然后准备自己写个 tg bot api 玩玩,发现已经有现成的 teloxide ,然后再这个基础上写自己的 bot api
写到一半的时候发现还是有很多内容不熟悉,看文档的时候都知道是咋回事,真正自己上手写的时候就懵逼
这种感觉真的太受挫了!
Rust 入门这几个月之后,主要学了 axum 、tokio 、tonic 这些后,然后准备自己写个 tg bot api 玩玩,发现已经有现成的 teloxide ,然后再这个基础上写自己的 bot api
写到一半的时候发现还是有很多内容不熟悉,看文档的时候都知道是咋回事,真正自己上手写的时候就懵逼
这种感觉真的太受挫了!
1
coderlxm Apr 24, 2025
哈哈哈这就对了 我学了 1 个月就感觉跟没学似的
|
3
arloor Apr 24, 2025 via Android
纸上得来终觉浅嘿嘿,这种感觉跟学第一门编程语言应该有点像
|
4
jianjian714 Apr 24, 2025
为啥要学 rust ?现在有厂开始大面积推了?
|
5
zlo309618100 Apr 24, 2025
同问,为啥要学 rust
|
6
5261 OP |
7
nebkad Apr 24, 2025
@jianjian714 @zlo309618100
因为在使用 Rust 语言的实践过程中,创造了一些以前的编程语言不能实现的解法。 这些解法通过 Rust 语言的一些特色设计来实现,包括但不仅限于,显式声明生命周期,借用检查,等等。 所以如果你对这些解法感兴趣,例如解决什么问题,如何解决的,那么就可以去学习一下。 推广了才来学那完全没必要,推广的时候除了浅显的 hello world ,很难理解上面的举例到底是干啥的。 因为推广而学一门编程语言,就像低买高卖一样,可能可以赚钱,但可以赚钱是不太可能的 |
9
yy9999 Apr 25, 2025
正常的, 编程这个东西, 需要 刻意练习, 需要悟道, 积累多了, 某一天就突然一下子 "通了", "开窍了"
|
10
OneDemo Apr 26, 2025 via iPhone
rust ,从入门到再次入门,我都前前后后入门三次了
|
11
PTLin Apr 26, 2025
https://cheats.rs/ 建议从头到尾过一遍,确保除了宏之外的东西能看明白 80%,并且要完全理解 Language Sugar 那一章提到的内容。
|
13
webnewobject1 Apr 28, 2025 via Android
有条件的话建议学习 lambda 演算法。可以尝试去理解一下函数式编程。rust 想要理解透彻的话,还是得要学这两个的。进阶的话可以先去学一下 haskell ,然后学习一下怎么使用和组装组合子。这样的话基本上能看懂很多东西了。我也是从 oop 过来的。oop 有很多东西并不适用于 rust ,但是如果把 rust 弄清楚了。会有很多好点子用到 oop 上面
|
14
5261 OP @webnewobject1 老哥目前 Rust 是主力语言还是第二语言呢
|
15
webnewobject1 Apr 28, 2025 via Android
@5261 主力,fp 和 oop 为辅助,fp 提供理论支撑,oop 提供实践工具。目前亲测最好的实践就是 rust+haskell+ts 或 Python ,这样可用性较强,java 的话心智消耗太高了,而且有些设计是冲突的,所以就放弃了。golang 可以当玩具写,毕竟 ts 和他很像。
|
16
5261 OP @webnewobject1 主要写底层还是中间服务呢? 我是主要 Java web 开发,rust 拿来写 web 或者业务也不知道是否合适
|
17
webnewobject1 Apr 28, 2025 via Android
@5261 其实他啥都能写,不过 ui 不是很好写。个人感觉来说 web 也很合适,跟 Java 不相上下。但是呢,Java 上的很多方法论在 rust 的上是用不了的。很多思想要换过来,就比如说这个 sql ,rust 更倾向于在 rust 代码上去解决这个事情。尽量不要用原生,因为无法预期控制。让组合子去代替动态 sql ,不过现在 rust 的最大的问题就是轮子太少了。很多东西都要自己写,而且他要求就是说在写之前就得想好,不是想好细节,就是想好整个项目的大体抽象。
所以呢,它更像是将原本的程序设计变得更重要了,就是在软件工程领域上的话。如果设计不好的话就容易写不下去。这就是为什么很多人写这个东西就觉得非常难受。说通俗点就是你拉屎之前必须把这个擦屁股的动作就给想好了。 如果说你的程序设计弄得比较好,抽象结构都比较合理的话,写起来就非常爽。基本上固定下来之后跑上去的东西不用怎么写测试。只需要回顾一下逻辑对不对就行了。然后弄上去的东西基本上不需要维护。然后特定的抽象设计,还能把形式化给他引进来。这样的话甚至都不用测试,因为数学已经证明过了。(当然对于 web 来说这感觉有点像牛刀杀鸡) 总的来说就是,rust 强迫你回顾你的程序设计,降低造屎概率。 还有就是他其实不是很适合快速原型,快速原型用其他的就好了,比如说 Python 之类的。 |
18
webnewobject1 Apr 28, 2025 via Android
@5261 还有一个就是非常简易的判断标准,可以看需求到底完不完善。或者说需求是要做一个可靠程序,还是说快速原型?如果是前者的话就直接上 rust ,如果是后者的话,就直接用胶水语言就行了。因为快速原型不需要搞那么多错误处理,只需要原型能跑出来就行了。
|
19
Lhcfl Apr 29, 2025
可以用 teloxide_core 这个库,是 teloxide 的 api 层,糖少一点比较方便理解
|
20
caobug Apr 30, 2025
@webnewobject1 想在 RUST 上堆屎山代码并不容易。
|
21
webnewobject1 Apr 30, 2025 via Android
@caobug 他底层设计就是让你干这个事儿的。不要堆屎山,想堆屎山就会让你寸步难行。()
|
22
caobug Apr 30, 2025
@webnewobject1 最近也是因为屎山没法继续堆,不得不重构。具体来说,某个 trait 中的函数参数原本只有一个,但随着需求变更不得不增加更多参数,每增加一个就需要修改若干 impl ,不得不新建一个 struct 装载,重构了所有关联代码。重构期间遇到特别多因生命周期引起的编译错误..
|
24
webnewobject1 May 1, 2025 via Android
@caobug 像这种多参数的,基本上都会留一个结构体。这样子加参数就无所谓了。
|
25
IIInsomnia May 21, 2025
想入门 Rust web 开发,可以看看: https://crates.io/crates/rnx
|