學習Rust適合寫什麼練手項目?

嗯可以假設學Rust的都至少會一門其他編程語言,所以難度稍微大一些也OK

最好是能充分利用Rust的特點的,或者是今後Rust可能會得到較多應用的領域


一個通過開發一個 2D 遊戲學習 Rust 的系列文章: ArcadeRS 1.0: The project,一共 16 章現在更新到第 6 章。

為了鞏固學習,有在嘗試翻譯 【譯】ArcadeRs 1.1: 一個簡單的窗口,不過還是推薦看原文啦。。

補充一個:

通過實現鏈表來學習 Rust 的各種特性和概念:Learning Rust With Entirely Too Many Linked Lists

Rust 有非常多的函數式編程的特性,鏈表是函數式語言中常用的一種數據結構(pattern matching 加遞歸太好用了~),可是 Rust 中卻很少出現,作者覺得挺遺憾的所以寫了這個教程。。。才怪!文章一開頭作者就很傲嬌地吐槽了一番鏈表,他覺得鏈表雖然有那麼一點點用,事實上也沒那麼好用,不過實現它的過程能幫助理解各種 Rust 的概念,所以就寫一下吧。。。

Rust 加入了 lifetime,zero-cost abstractions 這些概念,情況變得很不一樣,跟我學習 Scala 時得到的經驗很不同,所以挺值得一看的


我也是 Rust 初學者,考慮到 Rust 並沒有語言級的運行時系統(std 僅提供可選擇的、有限的運行時支持),所以拿 Rust 來寫運行時相關的東西,比如 GC 和線程池,不失為好的練手選擇。

GC 方面,Rust 的內存布局還算是比較明確的,用 Box 分配到堆上應該沒什麼問題。還可以考慮結合 Arc 做;線程池方面,可以考慮實現下 M:N 模型的用戶線程庫(我記得原來 Rust 有過?),裡面可能會用到 FnBox (原來叫 Thunk)

還有一個不錯的選擇是伺服器後端。你可以模仿 mio 寫一個非同步 IO 的庫,也可在 mio 上寫比如簡單的網頁伺服器。可以參考:Creating A Multi-echo Server using Rust and mio

.... 群里的人不知都哪裡去了,這個權當拋磚引玉了...


我覺得程序員都可以用任何一門語言寫一個自己專用的翻牆工具(我用 Rust 寫了一個,感興趣的可以在我的 GitHub 上找),只要支持 SOCKS 5 的最小一個子集,然後通過瀏覽器 proxy switch 類的插件根據不同域名決定是否走 SOCKS 5 代理即可。

一般來說開發這麼一個工具代碼量不大又實用,甚至可以成為任何一門語言的 Hello world 級程序。


官方的入門文檔就很好啊,我把所有的官方文檔都做成教程了,您如果卡住了可以看看。

[oeasy]教您玩轉rust編程視頻教程_野生技術協會_科技_bilibili_嗶哩嗶哩


Exercism.io: Crowd-sourced code mentorship.

這個OJ給剛學會hello word的程序猿準備的,而且支持了rust


剛剛開始寫:https://github.com/u2/leetcode-rust


推薦閱讀:

C++ 是不是最博大精深的編程語言?
C++里,typeid里的type_info是怎麼構造出來的,或是type_info從來沒有被構造?
程序員在面試時是否會被要求手寫代碼?
你見過哪些很贊的宏定義?
如何利用樹莓派學習Linux及Python?

TAG:編程語言 | 編程 | 開源項目 | C | Rust編程語言 |