V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
5261
V2EX  ›  Rust

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

  •  
  •   5261 · Apr 24, 2025 · 4241 views
    This topic created in 374 days ago, the information mentioned may be changed or developed.

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

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

    这种感觉真的太受挫了!

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

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

    不过恶心的也有,就是 符号是真的多,理解起来有难度,有的时候很懵逼!
    yy9999
        9
    yy9999  
       Apr 25, 2025
    正常的, 编程这个东西, 需要 刻意练习, 需要悟道, 积累多了, 某一天就突然一下子 "通了", "开窍了"
    OneDemo
        10
    OneDemo  
       Apr 26, 2025 via iPhone
    rust ,从入门到再次入门,我都前前后后入门三次了
    PTLin
        11
    PTLin  
       Apr 26, 2025
    https://cheats.rs/ 建议从头到尾过一遍,确保除了宏之外的东西能看明白 80%,并且要完全理解 Language Sugar 那一章提到的内容。
    5261
        12
    5261  
    OP
       Apr 26, 2025
    @PTLin 好的,这个链接的内容我是在计划要看的
    webnewobject1
        13
    webnewobject1  
       Apr 28, 2025 via Android
    有条件的话建议学习 lambda 演算法。可以尝试去理解一下函数式编程。rust 想要理解透彻的话,还是得要学这两个的。进阶的话可以先去学一下 haskell ,然后学习一下怎么使用和组装组合子。这样的话基本上能看懂很多东西了。我也是从 oop 过来的。oop 有很多东西并不适用于 rust ,但是如果把 rust 弄清楚了。会有很多好点子用到 oop 上面
    5261
        14
    5261  
    OP
       Apr 28, 2025
    @webnewobject1 老哥目前 Rust 是主力语言还是第二语言呢
    webnewobject1
        15
    webnewobject1  
       Apr 28, 2025 via Android
    @5261 主力,fp 和 oop 为辅助,fp 提供理论支撑,oop 提供实践工具。目前亲测最好的实践就是 rust+haskell+ts 或 Python ,这样可用性较强,java 的话心智消耗太高了,而且有些设计是冲突的,所以就放弃了。golang 可以当玩具写,毕竟 ts 和他很像。
    5261
        16
    5261  
    OP
       Apr 28, 2025
    @webnewobject1 主要写底层还是中间服务呢? 我是主要 Java web 开发,rust 拿来写 web 或者业务也不知道是否合适
    webnewobject1
        17
    webnewobject1  
       Apr 28, 2025 via Android
    @5261 其实他啥都能写,不过 ui 不是很好写。个人感觉来说 web 也很合适,跟 Java 不相上下。但是呢,Java 上的很多方法论在 rust 的上是用不了的。很多思想要换过来,就比如说这个 sql ,rust 更倾向于在 rust 代码上去解决这个事情。尽量不要用原生,因为无法预期控制。让组合子去代替动态 sql ,不过现在 rust 的最大的问题就是轮子太少了。很多东西都要自己写,而且他要求就是说在写之前就得想好,不是想好细节,就是想好整个项目的大体抽象。
    所以呢,它更像是将原本的程序设计变得更重要了,就是在软件工程领域上的话。如果设计不好的话就容易写不下去。这就是为什么很多人写这个东西就觉得非常难受。说通俗点就是你拉屎之前必须把这个擦屁股的动作就给想好了。
    如果说你的程序设计弄得比较好,抽象结构都比较合理的话,写起来就非常爽。基本上固定下来之后跑上去的东西不用怎么写测试。只需要回顾一下逻辑对不对就行了。然后弄上去的东西基本上不需要维护。然后特定的抽象设计,还能把形式化给他引进来。这样的话甚至都不用测试,因为数学已经证明过了。(当然对于 web 来说这感觉有点像牛刀杀鸡)
    总的来说就是,rust 强迫你回顾你的程序设计,降低造屎概率。
    还有就是他其实不是很适合快速原型,快速原型用其他的就好了,比如说 Python 之类的。
    webnewobject1
        18
    webnewobject1  
       Apr 28, 2025 via Android
    @5261 还有一个就是非常简易的判断标准,可以看需求到底完不完善。或者说需求是要做一个可靠程序,还是说快速原型?如果是前者的话就直接上 rust ,如果是后者的话,就直接用胶水语言就行了。因为快速原型不需要搞那么多错误处理,只需要原型能跑出来就行了。
    Lhcfl
        19
    Lhcfl  
       Apr 29, 2025
    可以用 teloxide_core 这个库,是 teloxide 的 api 层,糖少一点比较方便理解
    caobug
        20
    caobug  
       Apr 30, 2025
    @webnewobject1 想在 RUST 上堆屎山代码并不容易。
    webnewobject1
        21
    webnewobject1  
       Apr 30, 2025 via Android
    @caobug 他底层设计就是让你干这个事儿的。不要堆屎山,想堆屎山就会让你寸步难行。()
    caobug
        22
    caobug  
       Apr 30, 2025
    @webnewobject1 最近也是因为屎山没法继续堆,不得不重构。具体来说,某个 trait 中的函数参数原本只有一个,但随着需求变更不得不增加更多参数,每增加一个就需要修改若干 impl ,不得不新建一个 struct 装载,重构了所有关联代码。重构期间遇到特别多因生命周期引起的编译错误..
    stardew
        23
    stardew  
       Apr 30, 2025
    @PTLin 点开之后准备收藏学习下,结果发现早在收藏夹中....
    webnewobject1
        24
    webnewobject1  
       May 1, 2025 via Android
    @caobug 像这种多参数的,基本上都会留一个结构体。这样子加参数就无所谓了。
    IIInsomnia
        25
    IIInsomnia  
       May 21, 2025
    想入门 Rust web 开发,可以看看: https://crates.io/crates/rnx
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2482 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 53ms · UTC 12:03 · PVG 20:03 · LAX 05:03 · JFK 08:03
    ♥ Do have faith in what you're doing.