現代程式語言有很多,在我的程式設計學習裡面有小學階段的 LOGO , 中學階段的 Pascal ,也有在大學階段的 C/C++ , Java , .NET ,再到工作的 Objective-C , Swift , Go ,Kotlin ,以及 Rust 。在結束了2021年4個月的人工智慧課程後,我在想有什麼技能可以帶給各位 Reactor 的小夥伴, 我有想過是我司三朵雲上很 Cool 的產品,還是一些解決方案的事件。在權衡後, 我決定帶給大家 Rust 作為2022年新的開始。
為什麼選擇 Rust ?
不知道從哪個時間開始,每個語言誕生都在說自己的高效能,可靠性,和生產力。倘若你真正入坑後,總會有各種抱怨。 我瞭解 Rust 是3年前衣明志老師介紹的。 他是怎麼安利的我忘記了,不過我就踏入了這個坑了。首先 Rust 的語法和 C++ 很像, 具有高速和記憶體安全性。 Rust 是系統級別程式語言。
我們來看看 Rust 和 C/C++ 的一些關於記憶體安全的對比
int checkStr()
{
char *str = strdup("Hello Reactor!");
return 0;
}
在 C/C++ 中上面語法,就忘記了釋放指標,導致了記憶體洩露,這是一個非常基礎的問題,但到了 Rust 就通過作用域去避免了同樣的問題
fn checkStr(){
let str = String::from("Hello Reactor!");
}
就單從記憶體安全性就真心好用了。還有 Rust 通過 Crates 去管理相關的包, 和整個專案程式碼從專案建立,構建到測試,到執行部署的週期, 對比起在 C/C++ 開發時的雜亂無章,真的是太舒服了。
用什麼開發工具 Rust ?
一個好的工具,可以提升開發的效率,開發 Rust 我強烈還是推薦用 Visua Studio Code ,裡面有非常完善 Rust 支援。 rust-analyzer 和 CodeLLDB , crates 三大外掛安裝好, 你就可以非常高效地完成rust的開發。
我的課堂上也應用了另外一種方式用 Jupyter Notebook 來完成, 通過 Notebook 你可以完成相關的一些語法學習,以及做一些資料分析。
在課後也有一些小夥伴問我如何安裝。這裡我就附上一些安裝步驟。
- Python環境安裝和基本的 Jupyter Lab 安裝
請參考我的之前的文件 :
Windows 安裝
https://github.com/kinfey/Han...
Linux/macOS 安裝
https://github.com/kinfey/Han...
- 元件安裝
cargo install evcxr_jupyter
evcxr_jupyter --install
注意: 這裡有不同的系統配置要求,更多可以參考這裡 https://github.com/google/evc...
關於 Rust 應用在哪裡
Rust 的應用場景很寬,基於自身特點,常用於一些底層,後端服務,網路程式設計的工作。官方也列出了一些主要應用場景
在這次系列課程裡,我主要針對 Web 後端的工作做了相關介紹,當然也提及到 WebAssembly 。建議小夥伴可以回看我的 Rust 課程第二第三講。
Rust 的 Web 框架
Actix 和 Rocket 都是非常成熟的 Rust 頁面服務框架,兩者不相伯仲,我的課程以 Actix 框架為主 ,當然你也可以嘗試一下 Rocket 這個框架 。 以下是兩個框架的一些介紹, 自己可以按照實際情況進行框架的選擇
我個人是比較注重架構,好的架構是一個好的專案的開始,做後端服務,大家離不開 MVC 這個熟悉的模式, 結合 Rust 的包的知識可以把 Actix 的後端解決方案架構出非常好的專案。建議大家在架構 Rust 後端服務的時候,參考下我的第三講所提到的方式。
課程的後續補充
三週的課程是非常短的, Rust 涉及的點還有很多。例如如何用 Dapr 和 Web Assbembly 的應用 也是我想講的,接下來我會通過 Work Shop 的方式和大家說說,敬請期待!
最後附上這三個系列課程
點選進入看 Rust 程式語言 - Rust 基礎學習
點選進入看Rust 程式語言 - Rust 網頁程式設計
點選進入看 Rust 程式語言 - Rust 網路程式設計&IoT程式設計