← 全栈开发

Rust:从入门到精通

固定大纲的 Rust 系列:所有权与借用、生命周期与类型系统、Cargo 工程化、并发与异步、unsafe 与宏、性能工程与生态选型——从第一个程序写到像 Rustacean 一样思考。

14 篇文章按阅读顺序排列
第 1 篇

为什么是 Rust,为什么是 2026:第一次编译前的地图

Rust 从入门到精通系列第 1 篇:Rust 凭什么赢下了系统编程的十年、2026 年它到底跑在哪里、一段话讲完所有权、诚实的学习曲线,以及写第一行代码前需要的工具链。

RustSystems ProgrammingOwnershipCargoLearning
第 2 篇

所有权与借用:构成这门语言的三条规则

Rust 从入门到精通系列第 2 篇:move 语义与为什么赋值不是拷贝、读者与写者二选一规则、非词法生命周期、2024 edition 和 Polonius 带来的变化,以及结束与借用检查器搏斗的那些模式。

RustOwnershipBorrowingMemory SafetyBorrow Checker
第 3 篇

生命周期:描述而非指令的标注

Rust 从入门到精通系列第 3 篇:生命周期到底是什么、替你写标注的三条省略规则、必须动手标注的两个地方、'static 的两副面孔,以及 2024 edition 修掉的那些临时值作用域错误。

RustLifetimesBorrow CheckerElisionRust 2024
第 4 篇

Enum 即状态机:模式匹配与错误处理的第一笔回报

Rust 从入门到精通系列第 4 篇:会携带数据的 enum 如何让非法状态无法表示、match 的穷尽性检查如何把重构变成跟着编译器散步、Option 为什么是 null 的葬礼,以及 Result 和 ? 运算符怎样把错误处理从金字塔压成一条直线。

RustEnumsPattern MatchingError HandlingResult
第 5 篇

Trait:共享行为的合同,而不是家族树

Rust 从入门到精通系列第 5 篇:trait 是什么、孤儿规则为什么保护你、没有继承的世界如何用组合组织代码、derive 一行能买到什么,以及 Debug、Display、From、Clone、Drop、Iterator 这六个你每天都会打交道的标准 trait。

RustTraitsCompositionStandard LibraryIdioms
第 6 篇

智能指针:每一条「不」背后,都有一扇明码标价的门

Rust 从入门到精通系列第 6 篇:Box 为什么不是逃生舱而是递归类型的入场券、Rc 如何用计数共享所有权、RefCell 怎样把借用检查挪到运行期、Rc<RefCell<T>> 这个经典组合各自解决什么,以及每笔交易的价码与多线程亲戚。

RustSmart PointersBoxRcRefCellInterior Mutability
第 7 篇

泛型与 impl Trait:一份合同,两个方向

Rust 从入门到精通系列第 7 篇:泛型与 trait bound 的完整语法、单态化为什么零成本、impl Trait 在参数与返回位置的不对称、静态分发与 dyn 的取舍,以及 2024 edition 用 + use<...> 修好的返回位置生命周期捕获。

RustGenericsimpl TraitdynMonomorphizationRust 2024
第 8 篇

Cargo 与模块系统:把类型系统装进可维护的项目

Rust 从入门到精通系列第 8 篇:package 与 crate 的真实关系、mod 声明如何接线模块树、可见性阶梯与 E0603、workspace 的组织方式与共享构建缓存、feature flags 的加性规则,以及工作日每天都在用的 cargo 命令。

RustCargoModulesWorkspaceFeature FlagsTooling
第 9 篇

无畏并发:数据竞争如何变成编译错误

Rust 从入门到精通系列第 9 篇:Send 与 Sync 两个标记 trait 如何把「线程安全」变成类型层面的事实、scoped threads 如何合法借用栈上数据、Arc<Mutex<T>> 与第 6 篇 Rc<RefCell<T>> 的对应关系,以及 channel 背后「用通信共享内存」的所有权哲学。

RustConcurrencySend SyncArc MutexChannelsFearless Concurrency
第 10 篇

Async/Await:状态机、Poll 与执行器的诚实拆解

Rust 从入门到精通系列第 10 篇:async fn 编译成的状态机、Future 为什么在被 poll 之前什么都不做、手写一个 Future 和一个迷你执行器、waker 的角色、tokio 解决了线程模型的哪个瓶颈,以及 CPU 密集选线程、I/O 密集选异步的选型准则。

RustAsyncAwaitFutureTokioExecutors
第 11 篇

unsafe:五项特权、一扇门,和一个反直觉的事实

Rust 从入门到精通系列第 11 篇:unsafe 不关闭借用检查器这个最反直觉的事实、恰好五项特权各自的用途、裸指针与引用的合同差异、安全抽象边界的画法与 SAFETY 注释惯例,以及为什么成熟的 Rustacean 写的 unsafe 越来越少。

RustunsafeFFISafe AbstractionRaw Pointers
第 12 篇

宏:写代码的代码,以及什么时候忍住不写

Rust 从入门到精通系列第 12 篇:为什么 println! 只能是宏、macro_rules! 声明宏的模式匹配本质、卫生性如何隔离宏内变量、$crate 路径、过程宏三兄弟(derive/attribute/function-like)各自的领土与一个亲手实现的迷你 derive,以及「先学什么时候不用它」的判据阶梯。

RustMacrosmacro_rulesProcedural MacrosMetaprogramming
第 13 篇

性能工程:测量先行,然后亲眼看汇编

Rust 从入门到精通系列第 13 篇:测量先行的唯一循环、微基准与 profiler 的分工、分配作为看不见的税、Vec 扩容阶梯的实测数字与 with_capacity、亲手验证迭代器零成本承诺的方法,以及热路径上的五条守则。

RustPerformanceProfilingBenchmarkingZero-Cost Abstractions
第 14 篇

生态选型与远航:从 cargo new 到 Rustacean

Rust 从入门到精通系列第 14 篇(收官):起手栈各领域的事实标准、thiserror 与 anyhow 的分界线实证、如何读一个 crate 的尽调五信号、十四篇的完整回望,以及一个 Rustacean 接下来的路。

RustEcosystemCratesthiserroranyhowCareer
guest@swangnice:~$