langShift

Idiomatic Rust 風格

學習 Rust 的慣用寫法、社群最佳實踐和編碼哲學,編寫更符合 Rust 風格的程式碼

Idiomatic Rust 風格

📖 學習目標

本模組將引導你深入理解 Rust 的「慣用」風格,學習社群推崇的最佳實踐和編碼哲學,幫助你編寫出更符合 Rust 特性、更易讀、更高效的程式碼。


🎯 什麼是 Idiomatic Rust?

1. Rustacean 編碼哲學

  • 沒有垃圾收集器的記憶體安全: 擁抱所有權和借用系統。
  • 零成本抽象: 使用高階抽象而沒有效能損失。
  • 顯式優於隱式: 傾向於顯式行為。

2. 擁抱所有權系統

  • 在可能的情況下,優先選擇借用而不是所有權。
  • 明智地使用 clone()
  • 理解 String&str 之間的區別。

3. 零成本抽象

  • 使用迭代器和閉包進行高效的資料處理。
  • 利用特徵實現多態。

4. 錯誤處理哲學

  • 對可恢復的錯誤使用 Result,對不可恢復的錯誤使用 panic!
  • 避免在函式庫程式碼中使用 unwrap()expect()

📝 編碼規範與最佳實踐

1. 命名規範

  • 對變數和函式使用 snake_case
  • 對型別使用 PascalCase
  • 對常數使用 SCREAMING_SNAKE_CASE

2. 程式碼格式化

  • 使用 rustfmt 自動格式化你的程式碼。

3. 註釋與文件

  • 對文件註釋使用 ///
  • 對常規註釋使用 //
  • 為公共 API 編寫清晰簡潔的文件。

4. 錯誤處理模式

  • 使用 ? 操作符進行錯誤傳播。
  • 為你的函式庫定義自訂錯誤型別。

5. 並發與異步模式

  • 使用通道進行執行緒間通訊。
  • 使用 Arc<Mutex<T>> 實現共享狀態。

6. 特徵與泛型使用

  • 使用特徵定義共享行為。
  • 使用泛型編寫可重用程式碼。

🛠️ 常用工具與庫

1. clippy

一系列用於捕捉常見錯誤和改進你的 Rust 程式碼的 lint。

2. rustfmt

一個根據官方風格指南格式化 Rust 程式碼的工具。

3. rustdoc

一個從你的原始碼產生文件的工具。

4. 常用 crates

  • serde 用於序列化和反序列化。
  • tokio 用於異步程式設計。
  • clap 用於命令列參數解析。

📝 總結

本模組介紹了 idiomatic Rust 的概念,並提供了一套最佳實踐和工具來幫助你編寫更好的 Rust 程式碼。透過遵循這些指南,你不僅可以編寫出正確的程式碼,還可以使其易於閱讀、維護和高效。


學習完成: 恭喜你完成了 JavaScript 到 Rust 的學習之旅!