iT邦幫忙

2023 iThome 鐵人賽

DAY 2
1
Software Development

Rust Web API 從零開始系列 第 2

Day02 - 開發之前的那些事

  • 分享至 

  • xImage
  •  

需求分析

我們先從需求分析開始,接下來的幾天要完成一個部落格訂閱系統

我是一個部落格作者
我希望讀者可以訂閱我的部落格
讀者可以在我發布新文章時收到通知

我很喜歡zero2prod中討論User Story的部份,作者闡述了User Story對於敏捷開發的重要性,它們幫助我們確定任務的優先級並專注於需求,不過這部份就不是這次鐵人賽的範圍了,有興趣的話可以去看書中的文章,或者是我以前寫過的介紹(非常粗淺的那種介紹)。

開發環境

  1. 安裝Rust
    我自己使用Ubuntu,開始開發前我們需要安裝Rust,可以使用以下命令安裝Rust以及它的套件管理工具Cargo
    curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
    
    其他作業系統安裝可以到官方網站上。
  2. 開發工具
    可以選擇VSCode或是Clion,個人的經驗是VSCode搭配Rust-analyzer插件的體驗比CLion好很多,雖然到後來可能是電腦效能的問題Rust-analyzer很多提示會跑不出來,反而CLion隨著幾次的更新後體驗有所改善。

如果不想要做這些前置作業的話可以使用Gitpod或者Codespace這類雲端開發工具,他們準備的環境都直接把Rust以及開發時需要的VSCode插件都一次準備好了,這裡附上Gitpod的模板 ,懶人作法就是把這個repo fork一份,點下readme中的open in Gitpod就可以開始Coding了。

Web Framwork

最後,讓我們討論一下我們專案中的Web框架選擇。Rust生態系統中有幾個知名的Web框架:

  1. Actix-web
    Rust生態系中最知名的框架,效能極好,也是書中選擇的web框架。網站上有很詳細的教學文件,也有解釋整個框架的架構設計。
  2. Rocket
    標榜簡單易用,穩定性據說很好,但是更新頻率很低(等了一年才更新一個小版號)。
  3. Warp
    也是一個知名的框架,特點是強烈的函數風格。
  4. Axum
    這是一個相對較新但受歡迎的框架,由知名的tokio.rs團隊開發。

這次鐵人賽的實做我選擇使用Axum,主要是受到它的背後的tokio的影響。tokio是Rust中重量級的非同步框架,幾乎所有非同步相關的Rust項目都使用它,使用Axum就直接獲得了tokio的原生支援。目前Axum最大的缺點就是沒有完整的文件,只能從Docs.rs上的內容拼湊出框架的使用方法,比較難對框架有整體性的了解。

小結

前置作業就到這裡,明天會先從Axum開始介紹


上一篇
Day01 - 前言
下一篇
Day03 - 淺談Axum
系列文
Rust Web API 從零開始30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言