Rust 学习几个月之后,真正要自己写的时候就懵逼 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
5261
V2EX    Rust

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

  •  
  •   5261 219 天前 3626 次点击
    这是一个创建于 219 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

    这种感觉真的太受挫了!

    25 条回复    2025-05-21 09:49:26 +08:00
    coderlxm
        1
    coderlxm  
       219 天前
    哈哈哈这就对了 我学了 1 个月就感觉跟没学似的
    5261
        2
    5261  
    OP
       219 天前
    @coderlxm 才 1 个月,继续加油吧,还有不少内容要学的
    arloor
        3
    arloor  
       219 天前 via Android
    纸上得来终觉浅嘿嘿,这种感觉跟学第一门编程语言应该有点像
    jianjian714
        4
    jianjian714  
       219 天前
    为啥要学 rust ?现在有厂开始大面积推了?
    zlo309618100
        5
    zlo309618100  
       219 天前
    同问,为啥要学 rust
    5261
        6
    5261  
    OP
       218 天前
    @jianjian714
    @zlo309618100 别问,问就是打开编程视野,总不能在 Java 路上死绝!
    5261
        8
    5261  
    OP
       218 天前
    @nebkad 学完之后,Rust 的 过程宏和借用检查确实惊艳到我了!

    不过恶心的也有,就是 符号是真的多,理解起来有难度,有的时候很懵逼!
    yy9999
        9
    yy9999  
       218 天前
    正常的, 编程这个东西, 需要 刻意练习, 需要悟道, 积累多了, 某一天就突然一下子 "通了", "开窍了"
    OneDemo
        10
    OneDemo  
       217 天前 via iPhone
    rust ,从入门到再次入门,我都前前后后入门三次了
    PTLin
        11
    PTLin  
       217 天前
    https://cheats.rs/ 建议从头到尾过一遍,确保除了宏之外的东西能看明白 80%,并且要完全理解 Language Sugar 那一章提到的内容。
    5261
        12
    5261  
    OP
       217 天前
    @PTLin 好的,这个链接的内容我是在计划要看的
    webnewobject1
        13
    webnewobject1  
       215 天前 via Android
    有条件的话建议学习 lambda 演算法。可以尝试去理解一下函数式编程。rust 想要理解透彻的话,还是得要学这两个的。进阶的话可以先去学一下 haskell ,然后学习一下怎么使用和组装组合子。这样的话基本上能看懂很多东西了。我也是从 oop 过来的。oop 有很多东西并不适用于 rust ,但是如果把 rust 弄清楚了。会有很多好点子用到 oop 上面
    5261
        14
    5261  
    OP
       215 天前
    @webnewobject1 老哥目前 Rust 是主力语言还是第二语言呢
    webnewobject1
        15
    webnewobject1  
       215 天前 via Android
    @5261 主力,fp 和 oop 为辅助,fp 提供理论支撑,oop 提供实践工具。目前亲测最好的实践就是 rust+haskell+ts 或 Python ,这样可用性较强,java 的话心智消耗太高了,而且有些设计是冲突的,所以就放弃了。golang 可以当玩具写,毕竟 ts 和他很像。
    5261
        16
    5261  
    OP
       215 天前
    @webnewobject1 主要写底层还是中间服务呢? 我是主要 Java web 开发,rust 拿来写 web 或者业务也不知道是否合适
    webnewobject1
        17
    webnewobject1  
       215 天前 via Android
    @5261 其实他啥都能写,不过 ui 不是很好写。个人感觉来说 web 也很合适,跟 Java 不相上下。但是呢,Java 上的很多方法论在 rust 的上是用不了的。很多思想要换过来,就比如说这个 sql ,rust 更倾向于在 rust 代码上去解决这个事情。尽量不要用原生,因为无法预期控制。让组合子去代替动态 sql ,不过现在 rust 的最大的问题就是轮子太少了。很多东西都要自己写,而且他要求就是说在写之前就得想好,不是想好细节,就是想好整个项目的大体抽象。
    所以呢,它更像是将原本的程序设计变得更重要了,就是在软件工程领域上的话。如果设计不好的话就容易写不下去。这就是为什么很多人写这个东西就觉得非常难受。说通俗点就是你拉屎之前必须把这个擦屁股的动作就给想好了。
    如果说你的程序设计弄得比较好,抽象结构都比较合理的话,写起来就非常爽。基本上固定下来之后跑上去的东西不用怎么写测试。只需要回顾一下逻辑对不对就行了。然后弄上去的东西基本上不需要维护。然后特定的抽象设计,还能把形式化给他引进来。这样的话甚至都不用测试,因为数学已经证明过了。(当然对于 web 来说这感觉有点像牛刀杀鸡)
    总的来说就是,rust 强迫你回顾你的程序设计,降低造屎概率。
    还有就是他其实不是很适合快速原型,快速原型用其他的就好了,比如说 Python 之类的。
    webnewobject1
        18
    webnewobject1  
       215 天前 via Android
    @5261 还有一个就是非常简易的判断标准,可以看需求到底完不完善。或者说需求是要做一个可靠程序,还是说快速原型?如果是前者的话就直接上 rust ,如果是后者的话,就直接用胶水语言就行了。因为快速原型不需要搞那么多错误处理,只需要原型能跑出来就行了。
    Lhcfl
        19
    Lhcfl  
       214 天前
    可以用 teloxide_core 这个库,是 teloxide 的 api 层,糖少一点比较方便理解
    caobug
        20
    caobug  
       213 天前
    @webnewobject1 想在 RUST 上堆屎山代码并不容易。
    webnewobject1
        21
    webnewobject1  
       213 天前 via Android
    @caobug 他底层设计就是让你干这个事儿的。不要堆屎山,想堆屎山就会让你寸步难行。()
    caobug
        22
    caobug  
       213 天前
    @webnewobject1 最近也是因为屎山没法继续堆,不得不重构。具体来说,某个 trait 中的函数参数原本只有一个,但随着需求变更不得不增加更多参数,每增加一个就需要修改若干 impl ,不得不新建一个 struct 装载,重构了所有关联代码。重构期间遇到特别多因生命周期引起的编译错误..
    stardew
        23
    stardew  
       213 天前
    @PTLin 点开之后准备收藏学习下,结果发现早在收藏夹中....
    webnewobject1
        24
    webnewobject1  
       212 天前 via Android
    @caobug 像这种多参数的,基本上都会留一个结构体。这样子加参数就无所谓了。
    IIInsomnia
        25
    IIInsomnia  
       192 天前
    想入门 Rust web 开发,可以看看: https://crates.io/crates/rnx
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2685 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 28ms UTC 14:16 PVG 22:16 LAX 06:16 JFK 09:16
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86