Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

English Original

16. 最佳实践 🟢

你将学到:

  • 塑造地道 Rust 代码的 10 大习惯
  • 性能基准测试:Python 与 Rust 的正面对抗
  • 掌握 Rust 的 3 个月强化路线图
  • Python → Rust “罗塞塔石碑” (速查表)

必须建立的 10 个好习惯

  1. 研读错误信息:Rust 的编译器可能是目前各个编程语言里最棒的——它不但能告诉你错在哪,甚至能教你该怎么改代码。
  2. 多用 match 代替 if:只要条件在枚举 (Enum) 之内,就要尽量使用模式匹配,它更安全且更清晰。
  3. 函数参数传入 &str&[T]:对于函数输入参数,尽量使用借用的切片类型,而不是拥有所有权的 StringVec
  4. 迭代器优于显式循环:养成使用 .map().filter().fold() 的习惯,这比写带索引的 for 循环更加地道且高效。
  5. 坚持使用 Rustfmt 与 Clippy:随手运行 cargo fmtcargo clippy。它们就像 Python 里的 BlackPylint 的合成型加强版。
  6. Result 高于 Panic:除了在原型开发阶段或极端确定处,尽量避免到处写 .unwrap()
  7. 大方地派生 (Derive) 常用特征:给你的每个结构体都默认加上 #[derive(Debug, Clone, PartialEq)]
  8. 不要和所有权检查器“死磕”:如果你发现自己一直在试图通过 .clone() 来回避编译器报错,那说明你的数据所有权模型可能出了问题,需要重新审视。
  9. 使用枚举来建模状态机:用枚举来表示应用的不同业务逻辑状态。
  10. 拆分小模块:保持文件整洁,善用 Rust 的模块化系统进行解耦。

Python → Rust “罗塞塔石碑”

Python 概念Rust 等效概念
listVec<T>
dictHashMap<K, V>
NoneOption<T>
try...exceptResult<T, E>
lambda x: x*2`
[x for x in list]list.iter().map().collect()
@dataclass#[derive(Debug, Default)] struct
pip install Xcargo add X

Rust 升级之路:3 个月强化路线图

  • 第一个月:初窥门径:搞懂所有权、借用规则,熟练使用结构体与枚举。这一阶段的核心目标是“能让编译器通过”。
  • 第二个月:生态实战:学习错误处理的最佳姿势 (anyhow/thiserror)、高效序列化 (serde) 以及 CLI 工具开发 (clap)。
  • 第三个月:性能与并发:掌握利用 tokio 运行异步程序、利用 rayon 开启并行计算,并尝试编写 PyO3 扩展模块。

结束语

从 Python 切换到 Rust 的过程,就像是从骑自行车变成了开喷气式飞机。它的学习曲线更陡峭,安全检查更多,但一旦你成功起飞,你就会发现自己飞得比以往任何时候都更快、更远。

祝你在 Rust 的世界里玩得愉快!🦀