BRIEF —《Rust 程序员硬核修炼手册》

本文件是写作总纲。所有写作代理必须先读本文,再动笔。样章见 01-为什么是Rust.md 与 02-所有权.md,风格以样章为准。

一、项目目标

  • 总字数:≥ 120,000 字符(含代码与标点,以 Python len(open(f,encoding='utf-8').read()) 计;不是中文字数,技术书含大量代码与标识符)。
  • 定位:独立成体系的 Rust 硬核修炼手册。不假设读者是 Go 程序员,不写”在 Go 里你这样做、在 Rust 里那样做”的对照栏目;读者默认是有几年经验的程序员(懂变量、栈堆、指针、并发的基本概念),但 Rust 从零讲起、讲到深。
  • 精神:像机房泡了二十年的老兵带徒弟——循循善诱、多反问、不直接喂结论。先把问题问对,再层层剥开。案例要生动、生活化(快递柜、餐厅后厨、图书馆借书、合租公寓、装修合同都是好比喻),不要干巴巴复述文档。

二、读者与语气

  • 读者:工作 3-8 年的后端/系统程序员,会用一门语言,但”会用不精通”,想真正吃透 Rust 的设计意图。
  • narrator 人设(墨叔):住在协议栈里的老兵。可以调侃、可以反问、可以骂一句”你这想法危险”。不用 emoji。
  • 风格:导师 vs 读者对谈。大量使用反问(“你觉得呢?""为什么编译器非得管这么宽?""换成你会怎么设计?”),但反问之后自己把思考路径铺开,不真的把读者晾着。

三、章节主线(共 21 个文件:00 导读 + 01-19 正文 + 20 收尾 + README)

文件章主题核心要讲透的点
00-导读.md导读这本书怎么读、Rust 难在哪、心智地图为什么 Rust 学习曲线是”陡然后平”;全书导航
01-为什么是Rust.md一内存安全的另一条路没有 GC 如何保证安全;RAII;“编译期把 bug 挡在门外”的哲学
02-所有权.md二所有权:第一性原理move 语义、栈 vs 堆、drop、作用域、浅拷贝/深拷贝的消亡
03-借用与引用.md三借用与引用&T/&mut T;同一时刻要么多读要么一写;悬垂引用的消灭
04-生命周期.md四生命周期'a 是什么(不是存活时间,是约束关系);标注如何消除歧义;省略规则
05-数据类型与结构体.md五类型、结构体、方法struct/enum/tuple;impl;值语义;对齐与 padding(点到即止)
06-枚举与模式匹配.md六枚举与模式匹配Rust 的 enum 是代数数据类型;match 穷尽;if let/while let
07-错误处理.md七错误处理Result/Option;?;panic 的边界;错误类型设计
08-泛型与Trait.md八泛型与 Trait:多态trait 是 Rust 的”接口”但更强;静态分发 vs 动态分发入门;trait bound
09-Trait进阶.md九Trait 进阶trait object、dyn、关联类型、默认方法、Derive、孤儿规则
10-集合与智能指针.md十集合与智能指针Vec/String/Box/Rc/RefCell/Arc;内部可变性的哲学
11-迭代器与闭包.md十一迭代器与闭包闭包捕获;零成本抽象的 iterator;lazy;map/filter/collect
12-模块化与crate.md十二模块化与 crate模块树、use、可见性;Cargo;crate/package/workspace
13-并发模型.md十三并发:所有权消灭数据竞争thread::spawn;move 闭包;Arc<Mutex>;恐惧借用检查器消失
14-async与Future.md十四async/await 与 FutureFuture 是状态机;Pin;tokio 运行时;为什么 Rust 异步难写
15-unsafe与FFI.md十五unsafe 与 FFI哪 5 件事 unsafe 能破;如何安全封装;extern/绑定 C
16-宏系统.md十六宏声明宏 macro_rules!;过程宏;#[derive] 原理
17-零成本抽象与性能.md十七零成本抽象与性能单态化;内联;与 C++ 模板对比;benchmark 心态
18-实战项目.md十八实战:写一个 mini 工具串起前面知识(如 mini grep / 并发下载器 / 简易 KV);真实取舍
19-生态与进阶路线.md十九生态与进阶标准库、tokio、serde、rayon、const generics、编译期计算、学习路线
20-收尾.md收尾寄语修炼心法;把”编译器信任”内化为工程直觉

四、每章固定结构(写作代理务必遵守)

  1. 开篇一句话问题:用一句带反问的话把读者钩住(例:“如果一门语言在你写错的时候拒绝编译,而不是运行时崩溃,你会觉得它烦,还是觉得它靠谱?”)。
  2. 核心论述:分 3-6 个小节,层层推进。每个难点先用生活比喻,再回到代码。代码少而准——只为锚定理解,不堆示例。
  3. 特定读者连接:在章中某处,点一下”如果你写过 X 语言,这里的心智要重装”,但不展开成对照表。
  4. 章末标记(强制、成对出现):
    • 【思考题】 后跟 2-3 个生活化/设计向问题(不是考背诵,是逼读者自己推一遍)。
    • 【参考答案】 后跟对应解答(读者把答案当学习材料看,所以写详细、写推导,不要只给结论)。
    • 标记写法:方头括号直接跟文字,独立成行,## 思考题 / ### 思考题 这类也统一成 【思考题】。
  5. 小结:一句话收住本章主旨。

五、写作风格硬要求

  • 对话讨论式,多反问,不直接给结论。
  • 案例生活化(快递柜、餐厅、图书馆、合租、装修合同、停车场)。系统概念用比喻讲清后再上代码。
  • 讲设计意图,不讲条文罗列。知道 Rust 为什么这么设计,比背下所有规则有用。
  • 代码少而准,用 Rust 真实语法(```rust 代码块),注释用中文。代码只用来”钉”住理解。
  • 不用 emoji。标点用 ASCII 或中文全角。
  • 把读者当聪明人:不啰嗦已懂的,专攻半懂和误区。

六、禁止事项

  • 禁止写成 API 文档搬运 / 教程流水账。
  • 禁止堆砌代码而无讲解。
  • 禁止在正文行内写”【思考题】“字样当普通词(会被校验脚本误判),标记只用于章末独立成行。
  • 禁止出现”记住就行”——必须讲 why。
  • 禁止假设读者是 Go 程序员做系统性对照(角度已定为独立体系)。

七、输出要求(每章写完后必须自证)

  • 每章 ≥ 6,000 字符(含代码)。不足必须扩展,不得糊弄。
  • 校验命令(用 Python,因为本机 bash 的 wc 不可用):
    import os
    p = r"C:\Users\admin\Desktop\Rust程序员硬核修炼手册\<文件名>.md"
    t = open(p, encoding="utf-8").read()
    print(len(t), "chars")
  • 保存为 C:\Users\admin\Desktop\Rust程序员硬核修炼手册\<NN>-<标题>.md,文件名带两位序号前缀便于排序。
  • 代理返回:所写文件清单 + 每个文件的字符数。

八、质量底线

  • 跑题、水字数、把思考题当摆设——一律重写。
  • 思考题必须有”逼读者自己推导”的锐度;参考答案必须给出完整推导,不是一句话结论。