回应模式 - No.66424192


No.66424192 - 技术宅


无标题无名氏No.66424192 只看PO

2025-06-25(三)22:31:00 ID:zloB12e 回应

rust学习串。

大专毕业打螺丝中,对编程有兴趣,所以这是一个自学串。

为什么是rust呢,其实我筛选了一下,学完之后起点比较高、热度不至于太低的语言,就是cpp和rust。(用过一些java写的软件,太吃内存,所以没啥好感。c#和微软捆绑太深,而且也没打算做游戏。js,go,kotlin挺不错的,对应不同的应用领域,摸熟rust后会去试试的)

cpp对我而言太复杂啦,就决定是rust了。
它揉了很多现代化的设计,可以有一个比较全面的了解,而且tauri对我的吸引力还蛮高的(之前也粗略入门过vue3和tailwind css)。

其实到现在已经学了一个多月,学到第十七章(async和await),看的是官方文档的中文翻译和b站软件工艺师的视频。

目前感觉最困难的是第十章(泛型、trait、生命周期)和第十五章(智能指针),在这两章卡的最久。

无标题无名氏No.66850683

2025-08-19(二)23:26:56 ID: zloB12e (PO主)

进度比想象的快,花一个多小时就把之前留下的一堆问题解决了,编译通过。
各种结构体,鉴权中间件,登录接口,数据库操作函数都有了,这一过程里踩的最多的坑依然是axum的。回顾了一下,这个项目不光用了rust,还在自己连rust入门都不知道算不算的基础上开始用文档极不友好的axum,不禁感慨自己处处踩大坑,处处走最弯的路,这一过程中偶尔想到golang时嘴角都是湿湿的。
不过接下来开始实现具体功能时大概会比之前顺利得多。

无标题无名氏No.66850957

2025-08-19(二)23:57:21 ID: zloB12e (PO主)

用apipost梳理了一下接口,对数据库也做了点变动,代码留着明天改。
下工,看一集番剧就该睡觉了。

无标题无名氏No.66853894

2025-08-20(三)12:55:05 ID: kQtCkaX

hyprland可以考虑用别人的dotfiles
美观配置的话要看要改的实在太多,比手动安装arch牢一万倍()

我用的是HyDE,唯一的缺点是很多功能是py脚本写的,所以会带一个py环境,可能跟某些应用冲突

无标题无名氏No.66857577

2025-08-20(三)20:18:33 ID: zloB12e (PO主)

>>No.66853894
感谢肥哥提醒,那我就不自己搞了。
别的我不懂,但Python环境如果是虚拟的那就可以放心用,不会污染系统的python。

无标题无名氏No.66859656

2025-08-21(四)00:58:09 ID: zloB12e (PO主)

在写正式的功能代码前又对数据库做了变动。改动有点大,对应的函数代码的修改量也挺大,好在deepseek一下子就圆满完成了任务,今天又可以睡个好觉了。

对了,我看了一些电吉他的演奏,发现它是顶替了歌曲中人声的部分,在我听起来有点哗众取宠的意思,失真的音色我也不太喜欢,到头来发现确实只是一时冲动。
今后考虑这种动辄好几年的大投入爱好必须慎重了。既然现在选择了敲代码作为爱好,而且可以确定这是我喜欢的,那就必须坚持再坚持,尽量不要让时间分流也是关键之一。

无标题无名氏No.66861573

2025-08-21(四)12:24:39 ID: YdWBvB8

>>No.66850683
不是axum文档不友好,而是axum是在tower基础上构建的,axum里面一笔带过的(尤其是中间件部分)其实应该去看tower文档。

无标题无名氏No.66861841

2025-08-21(四)13:17:18 ID: zloB12e (PO主)

>>No.66861573
感谢肥哥回复。
我是小白,所以才会觉得官方的文档没啥用,多而杂。后来是找到一个中文博主发的零碎文档,虽然内容不多也没有写很多思路也不系统,但给我有用多了。
我是真第一次写后端,多而杂且不解释的文档真要命了(不只是axum,整个rs生态目前大部分都这样),不过有这次经验之后应该会好很多。
另一个buff是,这是第一次写rs代码,把理论转化为实践也同样要命,所以会觉得比较艰难。
tower的东西我没用上,因为被整怕了。而且以目前的情况来看,再学个框架这种事情怕是压垮骆驼的最后一根稻草,自己搓个简单的应付应付得了 ( ゚∀。)

无标题无名氏No.66861908

2025-08-21(四)13:34:17 ID: zloB12e (PO主)

对接口压测了一下,发现单线程压测错误率0%,但并发压测错误率飙升到99%,于是估摸着是连接池写寄了。
试着配置好最大会话数,遇锁等待和WAL模式,一下子就舒服了。这接口的操作都是读的,从测试结果来看(最高延迟和最低延迟相差16ms),起作用的应该是会话数和遇锁等待这两项。解决问题期间还出了个小乌龙,也是觉得自己挺好笑的。

晚上继续折腾。

无标题无名氏No.66865917

2025-08-21(四)22:59:35 ID: YdWBvB8

>>No.66861841
这个确实,尤其是这种大型的库,文档用词过于严谨,还经常忽略或者一笔带过大家认为的“常识”。可能不但要求你有rust经验,还需要更多的通用编程概念和计算机基础知识...

另外rust库如果觉得文档太难绷的话(尤其是一些比较小的库作者可能根本懒得写文档),可以去找到项目对应的github仓库看源码,一般主要是看examples文件夹(只要是库一般都会用,没有的话说明这库代码质量也不咋的了),可以快速了解基本用法而不用关心内部实现和原理。如果没有examples还可以去看单元测试和集成测试的代码,虽然那个很难起到example的作用,不过起码能看看各种东西预期的使用场景。