为前端工程师设计的 Rust 全栈路径

将前端思维
锻造成全栈

从 JavaScript 视角出发,系统掌握 Rust · 后端 · DevOps · AI 集成。 每个概念都有可视化动画,每章附实战案例。

8 个系统章节动画 + 代码 + 实战完全免费开源
滚动探索
课程地图

从零到全栈的路径

可学习即将上线每章附实战项目
前端视角

JavaScript 开发者
看 Rust 的三个关键转变

不是从零开始,而是从你已经知道的出发。 这些对比帮你建立思维模型,而不是死记语法。

01

变量声明

JS
JavaScript
// JavaScript: 默认可变
let name = "Alice";
name = "Bob"; // ✓ 随时修改

const arr = [1, 2, 3];
arr.push(4); // ✓ 内容可变
Rs
Rust
// Rust: 默认不可变
let name = "Alice";
// name = "Bob"; // ✗ 编译错误!

let mut arr = vec![1, 2, 3];
arr.push(4); // ✓ 需要 mut 声明

Rust 的不可变默认值迫使你明确意图,消灭了大量运行时 bug。

02

错误处理

JS
JavaScript
// JavaScript: try/catch + undefined
async function getUser(id) {
  try {
    const res = await fetch(`/api/${id}`);
    return res.json();
  } catch (e) {
    console.error(e); // 忘记处理?
    // 函数隐式返回 undefined
  }
}
Rs
Rust
// Rust: Result<T, E> 强制处理
async fn get_user(id: u32)
  -> Result<User, AppError>
{
  let res = fetch_user(id).await?;
  // ? 操作符:错误自动传播
  // 编译器保证你不能忽略错误
  Ok(res)
}

Result 类型让错误成为类型系统的一部分。忘记处理 = 编译失败。

03

并发模型

JS
JavaScript
// JavaScript: 单线程 + 事件循环
// 所有异步都在同一个线程
const [a, b] = await Promise.all([
  fetchA(), fetchB()
]);
// 不存在数据竞争,但也
// 无法利用多核 CPU
Rs
Rust
// Rust: 真正的多线程并发
// 编译器保证无数据竞争
let (a, b) = tokio::join!(
  fetch_a(),
  fetch_b()
);
// 可跨多核并行
// Send + Sync trait 保证线程安全

Rust 在编译期消除数据竞争,让多线程像单线程一样安全。

准备好了吗

第一章:所有权与借用
从内存可视化开始

通过 3D 动画看见内存的分配与释放。 理解 Rust 最核心的概念,构建第一个真正安全的命令行工具。

完全免费 · 无需注册 · 随时开始