这是一条从语言规则走向系统设计的连续学习路线。15 章不按关键字堆知识点,而是围绕“值如何流动、状态如何表达、边界如何约束、系统如何验证”四个问题逐层推进。
使用方式
- 第一次学习:按章节顺序运行示例,并完成每章的观察题与改造题。
- 已有基础:从第 3 章开始,重点补齐所有权、Trait、生命周期、并发和异步。
- 遇到编译错误:先写下你认为发生了什么,再阅读完整诊断;不要把 clone() 或 unsafe 当作默认修复手段。
Rust 的语法并不算庞大,真正需要建立的是一组可以迁移到任何项目的判断方法:
章节顺序按照这些问题的依赖关系安排:先看清值与类型,再建立抽象和工程边界,最后进入并发、异步与底层能力。
| 章节 | 主题 | 学完后应能回答 |
|---|---|---|
| 第 1 章 | Rust 为什么值得学与环境搭建 | Rust 的约束换来了什么?如何建立稳定反馈循环? |
| 第 2 章 | 变量、类型、函数与流程控制 | 绑定、表达式、类型推导和控制流怎样协作? |
| 第 3 章 | 所有权、借用、切片与内存模型 | 谁负责释放资源?借用为什么既安全又有限制? |
| 第 4 章 | 结构体、枚举、模式匹配与方法 | 如何让类型只允许合法状态? |
| 第 5 章 | 泛型、Trait、生命周期与特征对象 | 静态抽象与动态抽象应该怎样选择? |
| 第 6 章 | 集合、错误、模块、测试与文档 | 如何把单文件示例发展成有边界的 crate? |
| 第 7 章 | 闭包、迭代器与命令行实战 | 如何把匹配策略和数据遍历拆成可组合流水线? |
| 第 8 章 | Box、Rc、RefCell 与自引用 | 唯一所有权、共享所有权和内部可变性怎样取舍? |
| 第 9 章 | 线程、消息、锁、原子与线程安全 | 数据怎样安全跨线程移动、共享与同步? |
| 第 10 章 | Future、Pin、Stream 与任务调度 | Future 为什么能暂停,执行器如何再次唤醒它? |
| 第 11 章 | Unsafe、宏、类型系统与编译陷阱 | 哪些安全证明由编译器承担,哪些必须人工维护? |
| 第 12 章 | Cargo 工程化 | 依赖、Feature、Workspace、构建与发布如何联动? |
| 第 13 章 | 从零实现多线程 Web 服务器 | 阻塞服务如何演进到线程池与优雅关闭? |
| 第 14 章 | 用 Tokio 实现 Mini-Redis | Task、Channel、背压和关闭协议怎样组成异步服务? |
| 第 15 章 | 写出可靠高性能 Rust 的原则 | 如何把安全、性能与可维护性变成日常决策? |
按第 1—15 章推进。第 3—5 章不要追求速度:后续智能指针、并发和异步,本质上都在重新组合所有权、状态和抽象边界。
先快速完成第 1—2 章练习,再精读第 3—7 章。进入第 8 章前,确保你能解释 String、&str、Box<T> 与 dyn Trait 的所有权差异。
建议的最小命令集 cargo fmt 保持结构清晰,cargo check 提供快速反馈,cargo clippy 暴露可疑写法,cargo test 固定行为。四者应成为每个练习的结束动作。