iT邦幫忙

2023 iThome 鐵人賽

DAY 26
0
Software Development

Rust Web API 從零開始系列 第 26

Day26 - 關於Rust開發Web API這件事

  • 分享至 

  • xImage
  •  

我的Rust WebAPI的練習side project告一個段落,我想分享一些心得。

首先,我發現使用Rust來開發Web應用並不像我想像中的那麼困難。在實際動手之前,我原本以為不可變性和所有權問題會成為阻礙我進展的主要障礙,但在撰寫API的過程中,我意外地發現系統中需要使用可變變數的情況相當罕見,而不可變性確實使程式碼更容易理解。當大部分資料都是不可變的時候,實際需要處理所有權問題的情況相對較少。

另一方面,深入瞭解了Axum後,與.Net的Web框架相比,我發現網頁框架的核心內容實際上差異不大,而且Axum和大多數網頁框架都偏向物件導向的設計,因此相關概念大致相同。如果想看看要其他風格的Web框架,warp可能是一個不錯的選擇。

在開發WebAPI時,通常會遇到兩種類型的錯誤。第一種是程式錯誤,例如系統中未處理的null reference,這些問題常常在開發過程中被忽略,但在功能上線後卻經常出現,而且難以進行除錯。在使用Rust通常可以預防這類型問題。第二種錯誤涉及系統模型的設計,這類問題無法僅靠程式語言解決。在接觸Rust之前,我認為OOP是設計模型的終極解決方案,但建模其實有很多種方式。平常工作中。Rust提供了不同的角度,協助工程師拆分功能為多個小模組,並思考如何組織這些模組。與其著重於架構,更重要的是確保每個模組都封裝得宜,這才是構建穩健系統的關鍵。

最後,讓我分享一下對Rust的看法。我認為Rust是一門非常嚴謹的語言,但並不像傳言中那麼難學。儘管它在語法上設定了許多限制,但這些限制都在鼓勵編寫簡潔且可預測的程式碼,以這種方式組織的程式碼通常不難理解。此外,學習Rust實際上讓我改掉一些不良編碼習慣,努力確保每個方法的內容保持簡潔,從而大大減少錯誤的可能性。


上一篇
Day25 - 權限驗證(3) - 自己寫個middleware吧
下一篇
Day27 - 附錄: Rust中的非同步程式設計(1)
系列文
Rust Web API 從零開始30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

1
Hell Kiki
iT邦新手 4 級 ‧ 2023-09-26 10:02:22

呼應一下,有時候加了限制反而有更多的自由,Rust我也覺得是個很棒的語言,希望可以越來越多人加入。

我要留言

立即登入留言