commit cf27076fecf27c376f6dac5a4e7e83773126bbd4 Author: Yuhang Wu Date: Thu Jun 11 10:32:03 2026 +0800 学习计划 diff --git a/Rust_Tauri_学习打卡表.md b/Rust_Tauri_学习打卡表.md new file mode 100644 index 0000000..2b3d26c --- /dev/null +++ b/Rust_Tauri_学习打卡表.md @@ -0,0 +1,636 @@ +# 🦀 Rust + Tauri 学习打卡表 + +> **学习者**:Java全栈工程师 +> **开始日期**:_________ +> **预计周期**:12周 +> **每周目标投入**:8-12小时 + +--- + +## 📊 总进度看板 + +| 阶段 | 周数 | 主题 | 进度 | +|:---|:---|:---|:---:| +| 第一阶段 | 第1-4周 | Rust 基础 | ⬜⬜⬜⬜ | +| 第二阶段 | 第5-7周 | Rust 进阶 | ⬜⬜⬜ | +| 第三阶段 | 第8-10周 | Tauri 框架 | ⬜⬜⬜ | +| 第四阶段 | 第11-12周 | 综合实战 | ⬜⬜ | + +**总体完成度**:____ / 12 周 + +--- + +## 📘 第一阶段:Rust 语言基础 + +--- + +### 🔷 第1周:语法入门 + +**核心目标**:理解Rust基本语法,建立从Java到Rust的思维映射 + +| 序号 | 每日学习任务 | 预计时长 | 完成 | 日期 | +|:---:|:---|:---:|:---:|:---| +| 1 | 搭建开发环境(安装Rust、VS Code、rust-analyzer) | 1h | ⬜ | ___/___ | +| 2 | 阅读《Rust程序设计语言》第1-3章(变量、类型、函数) | 2h | ⬜ | ___/___ | +| 3 | 学习所有权系统初探(第4章前半部分) | 2h | ⬜ | ___/___ | +| 4 | 完成 Rustlings 练习 `variables` + `functions` + `if` | 1.5h | ⬜ | ___/___ | +| 5 | 编写命令行计算器(加减乘除) | 2h | ⬜ | ___/___ | +| 6 | 周复习 + 整理笔记(Java vs Rust 语法对比表) | 2h | ⬜ | ___/___ | +| 7 | 查漏补缺 / 休息日 | - | ⬜ | ___/___ | + +**本周产出清单**: + +- ⬜ 开发环境正常运行 (`rustc --version` 能输出) +- ⬜ Rustlings 完成:`variables`, `functions`, `if`, `move_semantics` +- ⬜ 命令行计算器代码提交到Git + +**自我评估**: +- 理解难度:⭐⭐⭐⭐⭐(1-5,5最难) +- 学习满意度:⭐⭐⭐⭐⭐(1-5) +- 最大困惑点:_________________________ +- 笔记链接/路径:_________________________ + +**本周实际用时**:____ 小时 + +--- + +### 🔷 第2周:所有权与借用(Rust的灵魂) + +**核心目标**:彻底理解所有权、借用、引用三大规则 + +| 序号 | 每日学习任务 | 预计时长 | 完成 | 日期 | +|:---:|:---|:---:|:---:|:---| +| 1 | 精读《Rust程序设计语言》第4章(所有权全部) | 2.5h | ⬜ | ___/___ | +| 2 | 理解借用(Borrowing)与引用(References) | 2h | ⬜ | ___/___ | +| 3 | 完成 Rustlings `move_semantics` + `primitive_types` | 1.5h | ⬜ | ___/___ | +| 4 | 学习 `Copy` vs `Clone` trait 的区别 | 1h | ⬜ | ___/___ | +| 5 | 编写练习:实现字符串拼接函数(处理所有权转移) | 2h | ⬜ | ___/___ | +| 6 | 阅读一篇所有权相关的博客/视频,加深理解 | 1.5h | ⬜ | ___/___ | +| 7 | 周复习 + 整理所有权思维导图 | 2h | ⬜ | ___/___ | + +**本周产出清单**: +- ⬜ Rustlings 完成:`move_semantics`, `primitive_types`, `structs` +- ⬜ 完成5个所有权相关的代码练习(手写) +- ⬜ 所有权思维导图/笔记 + +**关键检查点**(能向他人解释清楚): +- ⬜ 什么是所有权转移(Move)? +- ⬜ 什么是借用(Borrowing)?可变借用 vs 不可变借用? +- ⬜ 悬垂引用(Dangling Reference)Rust如何防止? +- ⬜ `String` vs `&str` 的区别? + +**自我评估**: +- 理解难度:⭐⭐⭐⭐⭐ +- 学习满意度:⭐⭐⭐⭐⭐ +- 最大困惑点:_________________________ +- 本周实际用时:____ 小时 + +--- + +### 🔷 第3周:结构体、枚举与模式匹配 + +**核心目标**:掌握Rust的组合数据类型和强大的模式匹配 + +| 序号 | 每日学习任务 | 预计时长 | 完成 | 日期 | +|:---:|:---|:---:|:---:|:---| +| 1 | 学习 `struct` 定义与使用(第5章) | 1.5h | ⬜ | ___/___ | +| 2 | 学习 `enum` 与 `match`(第6章) | 2h | ⬜ | ___/___ | +| 3 | 理解 `Option` 与空值处理(对比Java的null) | 1.5h | ⬜ | ___/___ | +| 4 | 完成 Rustlings `enums` + `strings` + `modules` | 2h | ⬜ | ___/___ | +| 5 | 学习 `if let` / `while let` 语法糖 | 1h | ⬜ | ___/___ | +| 6 | **实战项目**:命令行 Todo List 应用 | 3h | ⬜ | ___/___ | +| 7 | 周复习 + 代码重构优化 | 1.5h | ⬜ | ___/___ | + +**本周产出清单**: +- ⬜ Rustlings 完成:`enums`, `strings`, `modules` +- ⬜ 命令行 Todo List(支持:添加任务、列出任务、标记完成、删除) +- ⬜ 掌握 `Option` 的 `map`, `unwrap_or`, `expect` 等方法 + +**Todo List 功能需求**: +- ⬜ 使用 `Vec` 存储任务 +- ⬜ 每个任务包含:id、描述、完成状态 +- ⬜ 使用 `enum Command` 处理不同命令 +- ⬜ 数据存储在内存中(暂时不持久化) + +**自我评估**: +- 理解难度:⭐⭐⭐⭐⭐ +- 学习满意度:⭐⭐⭐⭐⭐ +- 最大困惑点:_________________________ +- 本周实际用时:____ 小时 + +--- + +### 🔷 第4周:错误处理、模块与集合 + +**核心目标**:掌握Rust的错误处理哲学和标准集合使用 + +| 序号 | 每日学习任务 | 预计时长 | 完成 | 日期 | +|:---:|:---|:---:|:---:|:---| +| 1 | 学习 `Result` 与错误传播(第9章) | 2h | ⬜ | ___/___ | +| 2 | 掌握 `?` 运算符与自定义错误类型 | 1.5h | ⬜ | ___/___ | +| 3 | 学习模块系统(`mod`, `use`, `pub`, `crate`) | 1.5h | ⬜ | ___/___ | +| 4 | 学习 Vector、HashMap、String 深入操作 | 2h | ⬜ | ___/___ | +| 5 | 完成 Rustlings 剩余全部练习(`hashmaps`, `options`, `errors`) | 2h | ⬜ | ___/___ | +| 6 | **项目重构**:给 Todo List 添加文件持久化 + 错误处理 | 3h | ⬜ | ___/___ | +| 7 | 周复习 + 阅读一个开源Rust项目源码(如 ripgrep) | 2h | ⬜ | ___/___ | + +**本周产出清单**: +- ⬜ Rustlings **全部完成** 🎉 +- ⬜ Todo List 支持文件读写(JSON/CSV格式) +- ⬜ 所有函数返回 `Result`,无 `unwrap` 滥用 + +**代码质量检查**: +- ⬜ 项目中无任何 `unwrap()` 或 `expect()`(除测试外) +- ⬜ 使用 `?` 运算符进行错误传播 +- ⬜ 合理的模块拆分(main.rs / lib.rs / task.rs / storage.rs) + +**第一阶段总结**: +- 总用时:____ 小时 +- Rustlings 完成率:____ / 84 题 +- 自我感觉:⬜ 很吃力 ⬜ 有点难但还行 ⬜ 比较顺利 +- 需要返工复习的内容:_________________________ + +### 📚 第一阶段参考资料 + +#### 官方文档(必读) +| 资源 | 链接 | 说明 | +|:---|:---|:---| +| **The Rust Programming Language(官方书)** | https://doc.rust-lang.org/book/ | 最权威的学习资料,第1-9章覆盖第一阶段 | +| **Rust By Example** | https://doc.rust-lang.org/rust-by-example/ | 通过示例学习,适合快速查阅语法 | +| **The Rust Reference** | https://doc.rust-lang.org/reference/ | 语法参考手册,遇到疑问时查阅 | +| **Rustlings** | https://github.com/rust-lang/rustlings | 官方命令行练习题,84题循序渐进 | + +#### 中文资源 +| 资源 | 链接 | 说明 | +|:---|:---|:---| +| **Rust语言圣经(Rust Course)** | https://course.rs/ | 中文社区翻译的综合教程,非常详细 | +| **Rust程序设计语言(中文翻译)** | https://kaisery.github.io/trpl-zh-cn/ | 官方书的中文版 | +| **Rust中文社区** | https://rustcc.cn/ | 中文论坛,遇到问题可搜索或提问 | +| **Rust语言实战(极客时间)** | https://time.geekbang.org/ | 付费课程,体系化讲解 | + +#### 视频教程(B站/YouTube) +| 资源 | 链接 | 说明 | +|:---|:---|:---| +| **Rust编程语言入门(B站)** | https://www.bilibili.com/video/BV1hp4y1k7SV | 黑马程序员,适合零基础 | +| **Rust编程语言教程(B站)** | https://www.bilibili.com/video/BV1Ay4y1v7u8 | 尚硅谷出品,讲得很细 | +| **Let's Get Rusty(YouTube)** | https://www.youtube.com/c/LetsGetRusty | 英文,讲解清晰,覆盖全面 | +| **Jon Gjengset(YouTube)** | https://www.youtube.com/c/JonGjengset | 英文,深入源码级别,适合进阶 | +| **Rust语言教程(B站:张汉东)** | https://www.bilibili.com/video/BV1T54y1G73Z | 中文深入讲解,适合有编程基础者 | + +#### 在线工具与练习 +| 资源 | 链接 | 说明 | +|:---|:---|:---| +| **Rust Playground** | https://play.rust-lang.org/ | 在线编写和运行Rust代码 | +| **Exercism Rust Track** | https://exercism.org/tracks/rust | 免费的编程练习平台,有导师评审 | +| **Rust Quiz** | https://dtolnay.github.io/rust-quiz/ | Rust趣味测验,检验理解深度 | +| **Rust Cheat Sheet** | https://cheats.rs/ | Rust语法速查表,非常全面 | + +#### 所有权专题(重点攻克) +| 资源 | 链接 | 说明 | +|:---|:---|:---| +| **Visualizing Memory in Rust** | https://www.youtube.com/watch?v=rDoqT-a6UFg | 图解Rust内存模型(英文视频) | +| **Rust Ownership Explained** | https://www.youtube.com/watch?v=Vg1LGHuAPPk | Let's Get Rusty 所有权详解 | +| **Understanding Ownership(中文)** | https://course.rs/basic/ownership.html | Rust语言圣经中的所有权章节 | + +--- + +## 📗 第二阶段:Rust 进阶 + +--- + +### 🔶 第5周:泛型与Trait + +**核心目标**:理解Rust的多态机制(对比Java的泛型和接口) + +| 序号 | 每日学习任务 | 预计时长 | 完成 | 日期 | +|:---:|:---|:---:|:---:|:---| +| 1 | 学习泛型(Generics)语法(第10章) | 1.5h | ⬜ | ___/___ | +| 2 | 学习 Trait 定义与实现(第10章) | 2h | ⬜ | ___/___ | +| 3 | 理解 Trait Bounds 与泛型约束 | 1.5h | ⬜ | ___/___ | +| 4 | 学习常用标准库 Trait:`Display`, `Debug`, `Clone`, `PartialEq` | 2h | ⬜ | ___/___ | +| 5 | 实现自定义 Trait:为不同类型实现同一行为 | 2h | ⬜ | ___/___ | +| 6 | 学习闭包(Closures)与迭代器(Iterators) | 2h | ⬜ | ___/___ | +| 7 | **实战**:用泛型和 Trait 实现通用排序 + 迭代器处理文件 | 2h | ⬜ | ___/___ | + +**本周产出清单**: +- ⬜ 实现一个通用排序函数 `fn sort(list: &mut [T])` +- ⬜ 为自定义结构体实现 `Display` 和 `Debug` +- ⬜ 使用迭代器处理大文件(逐行读取,统计行数/单词数) + +**自我评估**: +- Trait 理解程度:⭐⭐⭐⭐⭐ +- 与Java Interface 的对比感悟:_________________________ +- 本周实际用时:____ 小时 + +--- + +### 🔶 第6周:智能指针与并发基础 + +**核心目标**:理解堆内存管理与Rust的"无畏并发" + +| 序号 | 每日学习任务 | 预计时长 | 完成 | 日期 | +|:---:|:---|:---:|:---:|:---| +| 1 | 学习 `Box` 与堆分配(第15章) | 1.5h | ⬜ | ___/___ | +| 2 | 学习 `Rc`(引用计数)与 `RefCell`(内部可变性) | 2h | ⬜ | ___/___ | +| 3 | 学习 `Arc`(原子引用计数)与 `Mutex`(互斥锁) | 2h | ⬜ | ___/___ | +| 4 | 学习线程基础(`thread::spawn`)与 `move` 闭包 | 1.5h | ⬜ | ___/___ | +| 5 | 理解 `Send` 和 `Sync` trait | 1.5h | ⬜ | ___/___ | +| 6 | **实战**:多线程文件下载器(下载多个URL) | 3h | ⬜ | ___/___ | +| 7 | 周复习 + 整理并发安全概念 | 1.5h | ⬜ | ___/___ | + +**本周产出清单**: +- ⬜ 实现多线程下载器(支持同时下载3-5个文件) +- ⬜ 使用 `Arc>` 共享下载进度 +- ⬜ 理解为什么Rust能在编译期防止数据竞争 + +**关键理解检查**: +- ⬜ `Rc` vs `Arc` 的使用场景? +- ⬜ `Mutex` 在Rust中与Java的 `synchronized` 有何异同? +- ⬜ 什么是 `Send`?什么是 `Sync`? + +**自我评估**: +- 理解难度:⭐⭐⭐⭐⭐ +- 并发部分比Java更/更难理解?_________________________ +- 本周实际用时:____ 小时 + +--- + +### 🔶 第7周:异步编程与Tokio + +**核心目标**:掌握Rust的async/await与异步生态 + +| 序号 | 每日学习任务 | 预计时长 | 完成 | 日期 | +|:---:|:---|:---:|:---:|:---| +| 1 | 学习 `async/await` 语法与 `Future` trait | 2h | ⬜ | ___/___ | +| 2 | 了解 `tokio` 运行时与异步IO | 2h | ⬜ | ___/___ | +| 3 | 学习异步HTTP请求(`reqwest` 库) | 1.5h | ⬜ | ___/___ | +| 4 | 完成 [Tokio Tutorial](https://tokio.rs/tokio/tutorial) 前半部分 | 2h | ⬜ | ___/___ | +| 5 | 学习 Cargo 工作区(Workspaces) | 1h | ⬜ | ___/___ | +| 6 | **实战**:异步HTTP客户端(并发请求多个API) | 2.5h | ⬜ | ___/___ | +| 7 | 探索 crates.io:了解Rust生态常用库 | 1.5h | ⬜ | ___/___ | + +**本周产出清单**: +- ⬜ 使用 `tokio` 编写异步程序 +- ⬜ 异步HTTP客户端(支持超时、重试、并发限制) +- ⬜ 整理常用Crates清单(serde、reqwest、tokio、anyhow等) + +**第二阶段总结**: +- 总用时:____ 小时 +- 对Rust的信心度:⭐⭐⭐⭐⭐ +- 最感兴趣的方向:⬜ 系统编程 ⬜ Web后端 ⬜ 桌面应用 ⬜ 其他____ + +### 📚 第二阶段参考资料 + +#### 官方文档(必读) +| 资源 | 链接 | 说明 | +|:---|:---|:---| +| **The Rust Programming Language(第10-20章)** | https://doc.rust-lang.org/book/ | 泛型、Trait、智能指针、并发、不安全Rust | +| **Rust标准库文档** | https://doc.rust-lang.org/std/ | 查阅标准库API,熟悉常用模块 | +| **Tokio官方教程** | https://tokio.rs/tokio/tutorial | 异步编程的权威指南,必读 | +| **Rust Cookbook** | https://rust-lang-nursery.github.io/rust-cookbook/ | 常见任务的代码示例集合 | + +#### 进阶书籍(选读) +| 资源 | 链接 | 说明 | +|:---|:---|:---| +| **Programming Rust(O'Reilly)** | https://www.oreilly.com/library/view/programming-rust-2nd/9781492052586/ | 深入讲解,适合Java/C++背景 | +| **Rust for Rustaceans** | https://rust-for-rustaceans.com/ | 高级主题,系统设计层面 | +| **Rust Atomics and Locks** | https://marabos.nl/atomics/ | 并发编程深入讲解,免费在线阅读 | + +#### 视频教程 +| 资源 | 链接 | 说明 | +|:---|:---|:---| +| **Crust of Rust(Jon Gjengset)** | https://www.youtube.com/playlist?list=PLqbS7AVVErFiWDOAVrPt7WAmSMAHFYqKB | 深入讲解高级概念,如生命周期、Pin等 | +| **Rust并发编程(B站)** | https://www.bilibili.com/video/BV1yT4y1u7qp | 中文讲解并发模型 | +| **Tokio Tutorial 视频版** | https://www.youtube.com/watch?v=4QDUkjTUAWs | 异步运行时原理解析 | +| **Rust Lifetimes Explained** | https://www.youtube.com/watch?v=1QoT9fmQds4 | 生命周期可视化讲解 | + +#### 异步与并发专题 +| 资源 | 链接 | 说明 | +|:---|:---|:---| +| **Async Rust(Asynchronous Programming in Rust)** | https://rust-lang.github.io/async-book/ | 官方异步编程书籍 | +| **Fearless Concurrency(Rust官方)** | https://doc.rust-lang.org/book/ch16-00-concurrency.html | 并发章节官方文档 | +| **Tokio文档** | https://docs.rs/tokio/latest/tokio/ | Tokio API文档 | +| **Rayon(数据并行)** | https://github.com/rayon-rs/rayon | 并行迭代器库,简单易用 | + +#### 常用Crates(库)速查 +| Crate | 用途 | 文档链接 | +|:---|:---|:---| +| **serde** | JSON/序列化 | https://serde.rs/ | +| **reqwest** | HTTP客户端 | https://docs.rs/reqwest | +| **tokio** | 异步运行时 | https://tokio.rs/ | +| **anyhow/thiserror** | 错误处理 | https://docs.rs/anyhow | +| **clap** | 命令行参数解析 | https://docs.rs/clap | +| **chrono** | 日期时间处理 | https://docs.rs/chrono | +| **log/env_logger** | 日志记录 | https://docs.rs/log | + +--- + +## 📙 第三阶段:Tauri 框架 + +--- + +### 🟢 第8周:Tauri 基础与项目搭建 + +**核心目标**:理解Tauri架构,成功运行第一个桌面应用 + +| 序号 | 每日学习任务 | 预计时长 | 完成 | 日期 | +|:---:|:---|:---:|:---:|:---| +| 1 | 阅读 Tauri 官方文档 "Getting Started" | 1.5h | ⬜ | ___/___ | +| 2 | 理解 Tauri 架构(Rust后端 + Web前端进程隔离) | 1h | ⬜ | ___/___ | +| 3 | 环境准备:Node.js + Tauri CLI + 前端框架(Vue/React) | 1.5h | ⬜ | ___/___ | +| 4 | 创建第一个 Tauri 应用并运行 | 1h | ⬜ | ___/___ | +| 5 | 学习 `tauri.conf.json` 配置 | 1.5h | ⬜ | ___/___ | +| 6 | 学习 IPC:Commands(前端调用Rust函数) | 2h | ⬜ | ___/___ | +| 7 | 学习 IPC:Events(Rust向前端发送事件) | 2h | ⬜ | ___/___ | + +**本周产出清单**: +- ⬜ 成功运行 "Hello Tauri" 应用 +- ⬜ 实现一个 Command:前端按钮调用Rust函数计算斐波那契数列 +- ⬜ 实现一个 Event:Rust定时向前端推送系统时间 + +**关键检查点**: +- ⬜ 能解释 Tauri 与 Electron 的核心区别? +- ⬜ 理解 `invoke` 和 `emit`/`listen` 的适用场景? + +**自我评估**: +- Tauri 上手难度:⭐⭐⭐⭐⭐ +- 本周实际用时:____ 小时 + +--- + +### 🟢 第9周:Tauri 核心功能实战 + +**核心目标**:开发一个功能完整的 Markdown 编辑器 + +| 序号 | 每日学习任务 | 预计时长 | 完成 | 日期 | +|:---:|:---|:---:|:---:|:---| +| 1 | 学习 Tauri State Management(Managed State) | 1.5h | ⬜ | ___/___ | +| 2 | 学习文件系统API(读取、写入、监听文件变化) | 2h | ⬜ | ___/___ | +| 3 | 设计 Markdown 编辑器UI(编辑区 + 预览区分栏) | 2h | ⬜ | ___/___ | +| 4 | 实现文件打开/保存功能(Rust后端 + 前端调用) | 2.5h | ⬜ | ___/___ | +| 5 | 集成 Markdown 渲染(前端使用 marked 等库) | 1.5h | ⬜ | ___/___ | +| 6 | 实现最近打开文件列表 | 2h | ⬜ | ___/___ | +| 7 | 周复习 + 代码重构 | 1.5h | ⬜ | ___/___ | + +**本周产出清单**: +- ⬜ Markdown 编辑器 v0.1(支持打开/编辑/预览/保存) +- ⬜ 最近打开文件列表(持久化到本地配置文件) + +**功能验收清单**: +- ⬜ 通过系统对话框选择 `.md` 文件 +- ⬜ 实时预览 Markdown 渲染效果 +- ⬜ 保存时覆盖原文件 +- ⬜ 重启后保留最近文件列表 + +**自我评估**: +- 前端与Rust协作顺畅度:⭐⭐⭐⭐⭐ +- 本周实际用时:____ 小时 + +--- + +### 🟢 第10周:Tauri 高级特性与打包 + +**核心目标**:完善应用并掌握打包发布流程 + +| 序号 | 每日学习任务 | 预计时长 | 完成 | 日期 | +|:---:|:---|:---:|:---:|:---| +| 1 | 学习 Tauri 菜单(Menu)与系统托盘(System Tray) | 2h | ⬜ | ___/___ | +| 2 | 实现自动保存功能(定时器 + 文件写入) | 2h | ⬜ | ___/___ | +| 3 | 学习 Tauri 打包配置(Windows .msi / .exe) | 1.5h | ⬜ | ___/___ | +| 4 | 成功打包 Markdown 编辑器为安装程序 | 1.5h | ⬜ | ___/___ | +| 5 | 学习 Tauri 自动更新(Updater)机制 | 1.5h | ⬜ | ___/___ | +| 6 | 学习安全最佳实践(CSP、权限最小化) | 1.5h | ⬜ | ___/___ | +| 7 | 项目优化 + README 编写 + 开源发布准备 | 2h | ⬜ | ___/___ | + +**本周产出清单**: +- ⬜ Markdown 编辑器 v1.0 完整版 +- ⬜ Windows 安装包(.msi) +- ⬜ 项目README(含截图、安装说明) + +**功能验收清单**: +- ⬜ 系统托盘图标 + 右键菜单 +- ⬜ 自动保存(每30秒或编辑后5秒) +- ⬜ 可安装的 Windows 安装包 +- ⬜ 应用图标自定义 + +**第三阶段总结**: +- 总用时:____ 小时 +- 对Tauri的满意度:⭐⭐⭐⭐⭐ +- 是否打算用Tauri做实际项目?⬜ 是 ⬜ 否 ⬜ 不确定 + +### 📚 第三阶段参考资料 + +#### Tauri 官方资源(必读) +| 资源 | 链接 | 说明 | +|:---|:---|:---| +| **Tauri 官方文档** | https://tauri.app/v1/guides/ | 最权威的Tauri指南 | +| **Tauri API 文档** | https://tauri.app/v1/api/ | Commands、Events、Window等API | +| **Tauri 配置参考** | https://tauri.app/v1/references/configuration-files/ | tauri.conf.json完整配置说明 | +| **Tauri 示例仓库** | https://github.com/tauri-apps/tauri/tree/dev/examples | 官方示例代码 | +| **Awesome Tauri** | https://github.com/tauri-apps/awesome-tauri | Tauri生态资源汇总 | + +#### Tauri 插件与生态 +| 资源 | 链接 | 说明 | +|:---|:---|:---| +| **Tauri Plugin官方列表** | https://tauri.app/v1/guides/features/plugin/ | 官方维护的插件 | +| **tauri-plugin-store** | https://github.com/tauri-apps/tauri-plugin-store | 本地键值存储 | +| **tauri-plugin-sql** | https://github.com/tauri-apps/tauri-plugin-sql | SQLite数据库支持 | +| **tauri-plugin-log** | https://github.com/tauri-apps/tauri-plugin-log | 日志记录插件 | +| **tauri-plugin-fs-extra** | https://github.com/tauri-apps/tauri-plugin-fs-extra | 扩展文件系统API | + +#### 视频教程 +| 资源 | 链接 | 说明 | +|:---|:---|:---| +| **Tauri入门教程(B站)** | https://www.bilibili.com/video/BV1hM41127Gx | 中文Tauri基础教程 | +| **Build a Desktop App with Tauri** | https://www.youtube.com/watch?v=BY_ZjPGqJJk | YouTube英文实战教程 | +| **Tauri vs Electron** | https://www.youtube.com/watch?v=bTl7z0d9hTE | 技术选型对比 | +| **Tauri 1.0 Release Walkthrough** | https://www.youtube.com/watch?v=1Z_1URhw0W0 | 官方发布介绍 | + +#### Tauri 实战项目参考 +| 项目 | 链接 | 说明 | +|:---|:---|:---| +| **CakeBaker(Markdown编辑器)** | https://github.com/cakebaker/markdown-editor | 简单的Tauri Markdown编辑器 | +| **Tauri Notes** | https://github.com/probablykasper/tauri-test | 笔记应用示例 | +| **Tauri Todo** | 搜索 GitHub `tauri todo` | 多个Todo应用实现参考 | + +#### 打包与发布 +| 资源 | 链接 | 说明 | +|:---|:---|:---| +| **Tauri 打包指南** | https://tauri.app/v1/guides/building/ | Windows/Mac/Linux打包 | +| **代码签名** | https://tauri.app/v1/guides/distribution/sign-windows/ | Windows证书签名 | +| **自动更新** | https://tauri.app/v1/guides/distribution/updater/ | 应用自动更新配置 | +| **NSIS安装程序** | https://tauri.app/v1/guides/building/windows/ | Windows安装包定制 | + +#### 前端框架搭配建议 +| 框架 | Tauri模板命令 | 说明 | +|:---|:---|:---| +| **Vue 3** | `npm create tauri-app@latest` 选择Vue | 推荐,生态丰富 | +| **React** | 同上选择React | 熟悉React的首选 | +| **Svelte** | 同上选择Svelte | 轻量高效 | +| **Vanilla JS** | 同上选择Vanilla | 无需学习额外框架 | +| **SolidJS** | 同上选择Solid | 性能优秀 | + +--- + +## 📕 第四阶段:综合实战项目 + +--- + +### 🟣 第11周:项目设计与核心功能开发 + +**选择你的实战项目**: +- ⬜ **项目A**:API测试工具(类似Postman简化版) +- ⬜ **项目B**:番茄钟 + 任务管理器 +- ⬜ **项目C**:自定义项目 _________________________ + +| 序号 | 每日学习任务 | 预计时长 | 完成 | 日期 | +|:---:|:---|:---:|:---:|:---| +| 1 | 项目需求分析 + 技术选型 + UI原型设计 | 2h | ⬜ | ___/___ | +| 2 | 搭建项目骨架(Tauri + 前端框架 + Rust结构) | 1.5h | ⬜ | ___/___ | +| 3 | 实现核心数据模型与Rust后端逻辑 | 3h | ⬜ | ___/___ | +| 4 | 实现前端主要界面组件 | 3h | ⬜ | ___/___ | +| 5 | 前后端联调:IPC通信调试 | 2h | ⬜ | ___/___ | +| 6 | 功能迭代与bug修复 | 2h | ⬜ | ___/___ | +| 7 | 周总结 + 下周计划调整 | 1h | ⬜ | ___/___ | + +**本周产出清单**: +- ⬜ 项目仓库初始化 + 提交记录 +- ⬜ 核心功能可用(至少完成60%) + +**自我评估**: +- 本周实际用时:____ 小时 +- 遇到的阻塞问题:_________________________ + +--- + +### 🟣 第12周:项目收尾与总结 + +| 序号 | 每日学习任务 | 预计时长 | 完成 | 日期 | +|:---:|:---|:---:|:---:|:---| +| 1 | 完成剩余功能开发 | 2h | ⬜ | ___/___ | +| 2 | 代码重构与优化(错误处理、性能、UI) | 2h | ⬜ | ___/___ | +| 3 | 打包测试(多平台如有条件) | 1.5h | ⬜ | ___/___ | +| 4 | 编写项目README + 使用说明 | 1.5h | ⬜ | ___/___ | +| 5 | 整理学习笔记 + 建立个人Rust知识库 | 2h | ⬜ | ___/___ | +| 6 | 规划后续学习方向 | 1h | ⬜ | ___/___ | +| 7 | 🎉 庆祝完成!写一份学习总结 | 1h | ⬜ | ___/___ | + +**最终产出清单**: +- ⬜ 一个可运行的 Tauri 桌面应用 +- ⬜ GitHub/GitLab 仓库(代码+文档) +- ⬜ 个人Rust学习笔记/博客 + +### 📚 第四阶段参考资料 + +#### 项目设计参考 +| 资源 | 链接 | 说明 | +|:---|:---|:---| +| **Tauri GitHub Topic** | https://github.com/topics/tauri | 发现优秀的Tauri开源项目 | +| **Rust项目架构指南** | https://rust-unofficial.github.io/patterns/ | Rust设计模式 | +| **API Testing Tools(开源)** | https://github.com/topics/api-client | API测试工具参考 | +| **Pomodoro Apps(开源)** | https://github.com/topics/pomodoro | 番茄钟应用参考 | + +#### UI/UX 设计资源 +| 资源 | 链接 | 说明 | +|:---|:---|:---| +| **Figma社区** | https://www.figma.com/community | 免费UI设计模板 | +| **Heroicons** | https://heroicons.com/ | 免费SVG图标 | +| **Feather Icons** | https://feathericons.com/ | 简洁风格图标 | +| **Tailwind CSS** | https://tailwindcss.com/ | 快速构建美观UI | +| **shadcn/ui** | https://ui.shadcn.com/ | 精美的React组件库 | +| **Element Plus(Vue)** | https://element-plus.org/ | Vue3组件库 | +| **Vuetify** | https://vuetifyjs.com/ | Vue Material Design组件 | + +#### Rust项目最佳实践 +| 资源 | 链接 | 说明 | +|:---|:---|:---| +| **Rust API Guidelines** | https://rust-lang.github.io/api-guidelines/ | 编写优质Rust API的规范 | +| **Rust Project Layout** | https://doc.rust-lang.org/cargo/guide/project-layout.html | 项目目录结构规范 | +| **Rust Testing Guide** | https://doc.rust-lang.org/rust-by-example/testing.html | 测试编写指南 | +| **Clippy(代码检查)** | https://doc.rust-lang.org/clippy/ | Rust代码Lint工具 | +| **Rustfmt(代码格式化)** | https://github.com/rust-lang/rustfmt | 统一代码风格 | + +#### 发布与推广 +| 资源 | 链接 | 说明 | +|:---|:---|:---| +| **GitHub Actions for Tauri** | https://tauri.app/v1/guides/building/cross-platform/ | CI/CD自动打包 | +| **Release Please** | https://github.com/googleapis/release-please | 自动版本管理和发布 | +| **Product Hunt发布指南** | https://www.producthunt.com/ | 推广你的应用 | +| **V2EX/即刻/掘金** | 国内技术社区 | 分享学习心得和项目 | + +#### 后续深入学习路线 +| 方向 | 推荐资源 | 说明 | +|:---|:---|:---| +| **Web后端** | Actix-web (https://actix.rs/) / Axum (https://github.com/tokio-rs/axum) | Rust Web框架 | +| **数据库** | SQLx (https://github.com/launchbadge/sqlx) / Diesel (https://diesel.rs/) | 异步SQL工具包 | +| **GraphQL** | async-graphql (https://async-graphql.github.io/) | Rust GraphQL实现 | +| **WASM** | wasm-bindgen (https://github.com/rustwasm/wasm-bindgame) | Rust编译到WebAssembly | +| **游戏开发** | Bevy (https://bevyengine.org/) / Macroquad | Rust游戏引擎 | +| **嵌入式** | Embassy (https://embassy.dev/) / probe-rs | 嵌入式异步框架 | +| **CLI工具** | clap (https://docs.rs/clap) / dialoguer / indicatif | 命令行工具开发 | +| **网络协议** | tonic (gRPC) / libp2p (P2P网络) | 底层网络开发 | + +--- + +## 📝 学习总结与展望 + +### 12周总回顾 + +| 维度 | 评分(1-5) | 备注 | +|:---|:---:|:---| +| Rust 语言掌握度 | ⭐⭐⭐⭐⭐ | | +| Tauri 框架掌握度 | ⭐⭐⭐⭐⭐ | | +| 异步编程理解 | ⭐⭐⭐⭐⭐ | | +| 并发编程理解 | ⭐⭐⭐⭐⭐ | | +| 项目实战能力 | ⭐⭐⭐⭐⭐ | | + +### 学习成果统计 +- **总投入时间**:____ 小时 +- **完成项目数**:____ 个 +- **Rustlings 完成数**:____ / 84 +- **写出代码行数(估算)**:____ 行 + +### 后续学习方向(可选) +- ⬜ **Actix-web / Axum**:Rust Web后端开发 +- ⬜ **Diesel / SQLx**:Rust ORM与数据库 +- ⬜ **WASM**:Rust编译到WebAssembly +- ⬜ **嵌入式Rust**:no_std 开发 +- ⬜ **开源贡献**:为Rust项目提交PR +- ⬜ **工作应用**:将Rust/Tauri引入实际工作 + +### 最有价值的3个学习资源 +1. _________________________ +2. _________________________ +3. _________________________ + +### 给后来者的建议 +_________________________________________________________________ +_________________________________________________________________ + +--- + +## 📚 附录:常用命令速查 + +```bash +# Rust 基础 +rustc --version # 查看版本 +cargo new project_name # 创建新项目 +cargo build # 编译 +cargo run # 编译并运行 +cargo test # 运行测试 +cargo check # 快速检查(不生成二进制) +cargo add crate_name # 添加依赖 + +# Tauri +cargo create-tauri-app # 创建Tauri项目 +cargo tauri dev # 开发模式运行 +cargo tauri build # 打包发布 + +# Rustlings +rustlings watch # 自动检查练习 +rustlings run exercises/xxx # 运行单个练习 +``` + +--- + +> 💪 **坚持就是胜利!Rust的学习曲线虽然陡峭,但登顶后的风景绝对值得!**