覆沉

Rocket使用小結
by renyuneyun, post on Fri 03 August 2018

在今年Increase Rust's Reach中,我參與Rust新網站的i18n及l10n。其中新網站要基於 Rocket 構建,所以也就(跟着 官方教程 )學習了一下Rocket。 既然學了,就順便記錄一點心得和體會,以方便後來者。

Rocket是一個 web框架 。我個人對web編程(尤前端)並不太感興趣(主要是感到 web技術棧 太過麻煩/複雜),所以涉及不太多,之前也只用過Python那邊的Flask以及(一小段時間)Django以及Go自帶的http服務器,故而本文不怎麼會涉及和其他web框架的對比。

本文不打算成爲通常意義上的Rocket教程,而只是打算給有興趣者一個快速的(對rocket的)觀感。其中也會有一些個人的經驗教訓等。

Rocket概覽

類似我之前用過的框架,Rocket也將函數作爲不同的路由的處理器。Rocket在每個函數之前使用形如 #[get("/myroute")]屬性 作爲標記,之後在Rocket入口對象/結構體上對所需要的路由(函數)進行 mount 即可。

#[get("/")]
fn …

Rust學習筆記
by renyuneyun, post on Sat 09 June 2018


注意 : 部分章節尚未完工

在糾結了兩三年後,今年我終於下定決心好好學一下Rust。巧的是我還看到了Increasing Rust's Reach 2018,報名然後入選了,正好以此作爲契機寫一篇不一樣的Rust教程。

本文主要目的是描述我學習Rust時的一些(絕大多數)心得和體會。其動機之一是給自己留個易於檢查的筆記,之二是提供一個針對特定程序員的Rust教程。

該筆記適用於我及和我有類似編程背景的人。對該系列而言,所謂的“類似編程背景”主要是指C和OOP,以C、C++、Java、Python爲最佳。

不同編程語言所融合的特性不同,因而造就了不同語言的不同特色,但同時也使得學習一門新語言時不僅要學習語法還要學習自己之前所不知道的那部分特性。作爲一門編程語言,Rust中的許多特性和其他許多語言很類似,或乾脆就是一樣。因而,下文在介紹Rust時,如果是所遇到特性是編程背景中已知的部分,將會直接指向該背景特性而不加過多解釋;遇到類似概念,會給出不同之處;遇到新概念則當然是較爲詳細解釋。

我爲什麼學習Rust

同絕大多數語言一樣,Rust是一門命令式語言;同絕大多數“現代”語言一樣,Rust具有命名空間機制;由於目標是系統編程語言,Rust是一門編譯型語言(但較爲強調編譯速度)。

在Rust的所有特點中,我比較在意的幾個(核心 …