我們先從需求分析開始,接下來的幾天要完成一個部落格訂閱系統
我是一個部落格作者
我希望讀者可以訂閱我的部落格
讀者可以在我發布新文章時收到通知
我很喜歡zero2prod中討論User Story的部份,作者闡述了User Story對於敏捷開發的重要性,它們幫助我們確定任務的優先級並專注於需求,不過這部份就不是這次鐵人賽的範圍了,有興趣的話可以去看書中的文章,或者是我以前寫過的介紹(非常粗淺的那種介紹)。
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
其他作業系統安裝可以到官方網站上。VSCode
或是Clion
,個人的經驗是VSCode搭配Rust-analyzer插件的體驗比CLion好很多,雖然到後來可能是電腦效能的問題Rust-analyzer很多提示會跑不出來,反而CLion隨著幾次的更新後體驗有所改善。如果不想要做這些前置作業的話可以使用Gitpod或者Codespace這類雲端開發工具,他們準備的環境都直接把Rust以及開發時需要的VSCode插件都一次準備好了,這裡附上Gitpod的模板 ,懶人作法就是把這個repo fork一份,點下readme中的open in Gitpod就可以開始Coding了。
最後,讓我們討論一下我們專案中的Web框架選擇。Rust生態系統中有幾個知名的Web框架:
這次鐵人賽的實做我選擇使用Axum,主要是受到它的背後的tokio的影響。tokio是Rust中重量級的非同步框架,幾乎所有非同步相關的Rust項目都使用它,使用Axum就直接獲得了tokio的原生支援。目前Axum最大的缺點就是沒有完整的文件,只能從Docs.rs上的內容拼湊出框架的使用方法,比較難對框架有整體性的了解。
前置作業就到這裡,明天會先從Axum開始介紹