Search the library

Type to search · ↑↓ select · ⏎ open · Esc close

Skip to content
Dandan

DANDAN LEARN / Rust

从语法到工程实践

从所有权、借用、生命周期这些"硬核概念"出发,一路学到 async/await、Cargo 工程化、错误处理与性能调优——把 Rust 写成能长期维护的工程代码。

8 chapters · 216 articles

Learning goals

Put principles into practice.

  • 理解所有权、借用与类型系统
  • 学习错误处理、并发与异步编程
  • 结合测试、工具链和实践章节组织工程

Who this is for

  • 希望学习 Rust 与可靠系统编程的读者

Prerequisites

  • 入门章节从安装开始;有其他语言经验会更容易理解进阶主题

Contents

8 chapters · 216 articles

Jump to a chapter 8 chapters

序言

1 articles
  1. 自序 · RustPublic foreword

入门与基础

19 articles
  1. 关于本书Member article
  2. 进入 Rust 编程世界Member article
  3. 寻找牛刀,以便小试Member article
  4. 安装 Rust 环境Member article
  5. 认识 CargoMember article
  6. 墙推 VSCodeMember article
  7. 不仅仅是 Hello worldMember article
  8. 下载依赖太慢了Member article
  9. 避免从入门到放弃Member article
  10. Rust 基础入门Member article
  11. 变量绑定与解构Member article
  12. 基本类型Member article
  13. 数值类型Member article
  14. 字符、布尔、单元类型Member article
  15. 语句与表达式Member article
  16. 函数Member article
  17. 所有权和借用Member article
  18. 引用与借用Member article
  19. 所有权深入Member article

基础语法与实战

38 articles
  1. 复合类型Member article
  2. 字符串与切片Member article
  3. 元组Member article
  4. 结构体Member article
  5. 枚举Member article
  6. 数组Member article
  7. 流程控制Member article
  8. 模式匹配Member article
  9. match 和 if letMember article
  10. 解构 OptionMember article
  11. 全模式列表Member article
  12. 模式适用场景Member article
  13. 集合类型Member article
  14. 动态数组 VectorMember article
  15. KV 存储 HashMapMember article
  16. 认识生命周期Member article
  17. 方法 MethodMember article
  18. 泛型和特征Member article
  19. 泛型 GenericsMember article
  20. 特征 TraitMember article
  21. 特征对象Member article
  22. 进一步深入特征Member article
  23. 注释和文档Member article
  24. 包和模块Member article
  25. 包 CrateMember article
  26. 模块 ModuleMember article
  27. 使用 use 引入模块及受限可见性Member article
  28. 格式化输出Member article
  29. 返回值和错误处理Member article
  30. panic! 深入剖析Member article
  31. 返回值 Result 和 ?Member article
  32. 入门实战:文件搜索工具Member article
  33. 基本功能Member article
  34. 测试驱动开发Member article
  35. 使用环境变量Member article
  36. 重定向错误信息的输出Member article
  37. 增加模块化和错误处理Member article
  38. 使用迭代器来改进程序(可选)Member article

高级进阶

40 articles
  1. Rust 高级进阶Member article
  2. 生命周期Member article
  3. &'static 和 T: 'staticMember article
  4. 深入生命周期Member article
  5. 函数式编程:闭包、迭代器Member article
  6. 闭包 ClosureMember article
  7. 迭代器 IteratorMember article
  8. 深入类型Member article
  9. newtype 和类型别名Member article
  10. Sized 和不定长类型 DSTMember article
  11. 枚举和整数Member article
  12. 类型转换Member article
  13. 智能指针Member article
  14. Box<T> 堆对象分配Member article
  15. Deref 解引用Member article
  16. Drop 释放资源Member article
  17. Rc 与 Arc 实现 1vN 所有权机制Member article
  18. Cell 与 RefCell 内部可变性Member article
  19. 循环引用与自引用Member article
  20. 结构体中的自引用Member article
  21. Weak 与循环引用Member article
  22. 错误处理Member article
  23. 全局变量Member article
  24. Macro 宏编程Member article
  25. 多线程并发编程Member article
  26. 使用多线程Member article
  27. 并发和并行Member article
  28. 线程同步:消息传递Member article
  29. 线程同步:锁、Condvar 和信号量Member article
  30. 线程同步:Atomic 原子操作与内存顺序Member article
  31. 基于 Send 和 Sync 的线程安全Member article
  32. Unsafe RustMember article
  33. 五种兵器Member article
  34. 内联汇编Member article
  35. Rust 难点攻关Member article
  36. String、&str 和 strMember article
  37. 切片和切片引用Member article
  38. Eq 和 PartialEqMember article
  39. move、Copy 和 CloneMember article
  40. 作用域、生命周期和 NLLMember article

异步与并发

25 articles
  1. async 编程入门Member article
  2. async/await 异步编程Member article
  3. async/await 和 Stream 流处理Member article
  4. 底层探秘:Future 执行与任务调度Member article
  5. 定海神针 Pin 和 UnpinMember article
  6. 同时运行多个 FutureMember article
  7. 一些疑难问题的解决办法Member article
  8. 实践应用:Async Web 服务器Member article
  9. 进阶实战1:实现一个 web 服务器Member article
  10. 单线程版本Member article
  11. 多线程版本Member article
  12. 优雅关闭和资源清理Member article
  13. 进阶实战2:实现一个简单 RedisMember article
  14. 使用初印象Member article
  15. tokio 概览Member article
  16. 深入 asyncMember article
  17. 创建异步任务Member article
  18. 共享状态Member article
  19. 类似迭代器的 StreamMember article
  20. 消息传递Member article
  21. 异步跟同步共存Member article
  22. I/OMember article
  23. selectMember article
  24. 解析数据帧Member article
  25. 优雅的关闭Member article

测试、工具链与工程实践

45 articles
  1. 自动化测试Member article
  2. 编写测试及控制执行Member article
  3. 单元测试和集成测试Member article
  4. 断言 assertionMember article
  5. 基准测试 benchmarkMember article
  6. 用 GitHub Actions 进行持续集成Member article
  7. Cargo 使用指南Member article
  8. 为何会有 CargoMember article
  9. 上手使用Member article
  10. 基础指南Member article
  11. Package 目录结构Member article
  12. Cargo.toml vs Cargo.lockMember article
  13. 添加依赖Member article
  14. 下载并构建 PackageMember article
  15. 测试和 CIMember article
  16. Cargo 缓存Member article
  17. Build 缓存Member article
  18. 进阶指南Member article
  19. Cargo.toml 清单详解Member article
  20. 指定依赖项Member article
  21. 依赖覆盖Member article
  22. Cargo TargetMember article
  23. 工作空间 WorkspaceMember article
  24. 条件编译 FeaturesMember article
  25. Features 示例Member article
  26. 构建脚本 build.rsMember article
  27. 构建脚本示例Member article
  28. 发布配置 ProfileMember article
  29. 发布到 crates.ioMember article
  30. 通过 config.toml 对 Cargo 进行配置Member article
  31. 日志和监控Member article
  32. 日志门面 logMember article
  33. 使用 tracing 记录日志Member article
  34. 自定义 tracing 的输出格式Member article
  35. 日志详解Member article
  36. 监控Member article
  37. 可观测性Member article
  38. 分布式追踪Member article
  39. 企业落地实践Member article
  40. AWS 为何这么喜欢 RustMember article
  41. Rust 最佳实践Member article
  42. 代码开发实践Member article
  43. 命名规范Member article
  44. 日常开发三方库精选Member article
  45. 面试经验Member article

实战:链表 / 错误 / 性能

47 articles
  1. 为什么链表这么难Member article
  2. 需要链表吗Member article
  3. 不太优秀的单向链表:栈Member article
  4. 数据布局Member article
  5. 基本操作Member article
  6. 最后实现Member article
  7. 还可以的双向链表:双端队列Member article
  8. 数据布局Member article
  9. 迭代器Member article
  10. PeekMember article
  11. 更优雅的实现Member article
  12. 最后实现Member article
  13. 超棒的实现Member article
  14. 类型Member article
  15. 迭代器Member article
  16. 可变的迭代器Member article
  17. PeekMember article
  18. 性能足够好的单向链表Member article
  19. 数据布局Member article
  20. 在 Drop 中检查偷懒Member article
  21. Rust 常见错误Member article
  22. Rust 错误处理心法Member article
  23. 与借用相关:闭包Member article
  24. 与借用相关:循环Member article
  25. 与借用相关:长久的迭代Member article
  26. 与借用相关:繁冗的迭代Member article
  27. 与生命周期相关:函数Member article
  28. 与生命周期相关:结构体Member article
  29. 与生命周期相关:闭包Member article
  30. Rust 中的坑Member article
  31. 算术溢出Member article
  32. 字符与字符串Member article
  33. 栈与堆Member article
  34. Vec 与切片Member article
  35. 迭代器Member article
  36. 范围(Range)Member article
  37. Send / SyncMember article
  38. 可变变量绑定Member article
  39. ChannelMember article
  40. 闭包Member article
  41. LazyMember article
  42. Rust 性能调优Member article
  43. 深入性能Member article
  44. 编译优化Member article
  45. Move 与 CopyMember article
  46. String 与 &strMember article
  47. 性能中的内存Member article

更多文章

1 articles
  1. 生命周期Member article

Reading and learning support

Forewords are public. Other chapters require access to the column or the whole library.

Overview reviewed on

Learning notes and complete roadmap