Skip to content

Rust程序设计(第2版) ​

返回分类书单

分类:计算机与软件工程 / 编程语言与开发框架

书籍简介 ​

Jim Blandy、Jason Orendorff、Leonora F. S. Tindall 合著的 Programming Rust, Second Edition 面向已有编程经验、希望理解 Rust 系统编程能力的读者,将内存安全、类型表达与高效执行联系起来。

适合带着 C、C++ 或其他语言的经验阅读,但不要急于把旧写法直接翻译成 Rust。先理解所有权、借用和生命周期,再观察这些约束如何影响接口设计。

版本说明 ​

本页对应汪志成翻译、人民邮电出版社 2023 年版《Rust程序设计(第2版)》,ISBN 9787115621818。中文书目与作者示例仓库已交叉核对,下面按其 23 章整理,部分章名作简短转述。这不是 Steve Klabnik、Carol Nichols 的 The Rust Programming Language,不混用两部书的目录。

作者与背景 ​

作者为 Jim Blandy、Jason Orendorff、Leonora F. S. Tindall。O’Reilly 的日文第2版介绍确认三位作者,并将本书与 Rust 在 Firefox 等系统开发中的实践联系起来;作者示例仓库提供可继续检验的代码。其价值在于把语言规则与系统编程问题相连,不能把作者经验理解为代码永远兼容后续工具链。

目标读者 ​

适合已有一门语言经验、愿意重新理解资源所有权的开发者,尤其是关心系统控制、内存与并发的人。完全零基础读者可能需要补基础程序设计;只想快速完成 Web 项目的人可按主题选读。

章节介绍 ​

章节核心内容
第1章 系统程序员也能拥有美好工具说明安全性、性能与系统控制之间的目标,介绍 Rust 的设计立场。
第2章 Rust 概览通过完整小程序认识工具链、类型检查和并发计算的基本面貌。
第3章 基本类型理解数值、数组、切片和字符串等类型及其表示差异。
第4章 所有权与移动分析值由谁负责释放,以及赋值和传参何时转移所有权。
第5章 引用解释共享借用、可变借用与生命周期约束,建立对象有效期的判断方法。
第6章 表达式介绍控制流、模式与表达式求值,让代码结构与数据流相匹配。
第7章 错误处理区分可恢复错误与 panic,使用 Result 组织错误传播。
第8章 crate 与模块讨论包组织、可见性和依赖,将代码整理成可复用的边界。
第9章 结构体用结构体与方法表达数据及行为,理解泛型结构体的用途。
第10章 枚举与模式用代数式的数据建模表达状态,借助匹配检查处理是否完整。
第11章 trait 与泛型通过约束表达共享行为,比较泛型与 trait 对象的使用情形。
第12章 运算符重载理解标准运算符对应的 trait,以及自定义类型的语义一致性。
第13章 实用 trait学习转换、解引用、比较等常用 trait 如何参与标准库协作。
第14章 闭包分析环境捕获及 Fn 系列约束,连接回调与所有权。
第15章 迭代器用惰性迭代和适配器组织数据处理,理解迭代中的借用与消耗。
第16章 集合比较常用集合的性能与访问特点,根据数据关系选择结构。
第17章 字符串与文本处理 UTF-8、字符与格式化,避免把字节下标误当字符位置。
第18章 输入与输出使用流、文件和网络接口,组织缓冲与错误处理。
第19章 并发讨论线程、消息传递和共享状态,理解 Send 与 Sync 的作用。
第20章 异步编程介绍 Future、任务调度和唤醒,区分异步等待与并行执行。
第21章 宏认识宏展开与语法匹配,理解减少重复代码的适用边界。
第22章 unsafe 代码分析裸指针与安全不变量,说明局部不安全实现怎样提供安全接口。
第23章 外部函数通过 FFI 连接其他语言,处理类型、资源所有权和调用约定。

读后感 ​

以下为本站阅读评析,用可实践的阅读目标表达收获,不代表书单提供者已经读完、任职或完成相应项目。版本未明时,评析只针对本页明确标注的主题或参考版本。

金句摘抄或阅读提炼 ​

所有权不是多写的规则,而是把资源责任写进接口。

这是本站原创阅读提炼,不是原书引文;没有可核对页码的原文不作逐字摘抄。

个人收获 ​

拿一段“函数返回局部对象的引用”思路,画出数据在哪个作用域释放,再分别考虑返回所有权或由调用者持有数据。对比两种接口后,更容易把借用检查理解为设计约束,而不是只靠 clone 消除错误。

客观评价与阅读建议 ​

系统细节与语言覆盖较深,初学阶段信息量较大;异步、unsafe 和 FFI 也需要额外练习才能消化。建议先读所有权、引用、错误与类型建模,再进入并发;安全类型并不自动证明业务顺序正确或没有死锁。

推荐语(本站原创,非原书引用): 推荐给希望知道 Rust 规则“为何如此”的读者:别急于消掉编译错误,先解释数据由谁负责。

来源与核对入口 ​

继续阅读