learning-rust/Rust_Tauri_学习打卡表.md

637 lines
28 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 🦀 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-55最难
- 学习满意度⭐⭐⭐⭐⭐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 ReferenceRust如何防止
-`String` vs `&str` 的区别?
**自我评估**
- 理解难度:⭐⭐⭐⭐⭐
- 学习满意度:⭐⭐⭐⭐⭐
- 最大困惑点_________________________
- 本周实际用时____ 小时
---
### 🔷 第3周结构体、枚举与模式匹配
**核心目标**掌握Rust的组合数据类型和强大的模式匹配
| 序号 | 每日学习任务 | 预计时长 | 完成 | 日期 |
|:---:|:---|:---:|:---:|:---|
| 1 | 学习 `struct` 定义与使用第5章 | 1.5h | ⬜ | ___/___ |
| 2 | 学习 `enum``match`第6章 | 2h | ⬜ | ___/___ |
| 3 | 理解 `Option<T>` 与空值处理对比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<Task>` 存储任务
- ⬜ 每个任务包含id、描述、完成状态
- ⬜ 使用 `enum Command` 处理不同命令
- ⬜ 数据存储在内存中(暂时不持久化)
**自我评估**
- 理解难度:⭐⭐⭐⭐⭐
- 学习满意度:⭐⭐⭐⭐⭐
- 最大困惑点_________________________
- 本周实际用时____ 小时
---
### 🔷 第4周错误处理、模块与集合
**核心目标**掌握Rust的错误处理哲学和标准集合使用
| 序号 | 每日学习任务 | 预计时长 | 完成 | 日期 |
|:---:|:---|:---:|:---:|:---|
| 1 | 学习 `Result<T, E>` 与错误传播第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 RustyYouTube** | https://www.youtube.com/c/LetsGetRusty | 英文,讲解清晰,覆盖全面 |
| **Jon GjengsetYouTube** | 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<T: Ord>(list: &mut [T])`
- ⬜ 为自定义结构体实现 `Display``Debug`
- ⬜ 使用迭代器处理大文件(逐行读取,统计行数/单词数)
**自我评估**
- Trait 理解程度:⭐⭐⭐⭐⭐
- 与Java Interface 的对比感悟_________________________
- 本周实际用时____ 小时
---
### 🔶 第6周智能指针与并发基础
**核心目标**理解堆内存管理与Rust的"无畏并发"
| 序号 | 每日学习任务 | 预计时长 | 完成 | 日期 |
|:---:|:---|:---:|:---:|:---|
| 1 | 学习 `Box<T>` 与堆分配第15章 | 1.5h | ⬜ | ___/___ |
| 2 | 学习 `Rc<T>`(引用计数)与 `RefCell<T>`(内部可变性) | 2h | ⬜ | ___/___ |
| 3 | 学习 `Arc<T>`(原子引用计数)与 `Mutex<T>`(互斥锁) | 2h | ⬜ | ___/___ |
| 4 | 学习线程基础(`thread::spawn`)与 `move` 闭包 | 1.5h | ⬜ | ___/___ |
| 5 | 理解 `Send``Sync` trait | 1.5h | ⬜ | ___/___ |
| 6 | **实战**多线程文件下载器下载多个URL | 3h | ⬜ | ___/___ |
| 7 | 周复习 + 整理并发安全概念 | 1.5h | ⬜ | ___/___ |
**本周产出清单**
- ⬜ 实现多线程下载器支持同时下载3-5个文件
- ⬜ 使用 `Arc<Mutex<T>>` 共享下载进度
- ⬜ 理解为什么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 RustO'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 RustJon 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 RustAsynchronous Programming in Rust** | https://rust-lang.github.io/async-book/ | 官方异步编程书籍 |
| **Fearless ConcurrencyRust官方** | 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 | 学习 IPCCommands前端调用Rust函数 | 2h | ⬜ | ___/___ |
| 7 | 学习 IPCEventsRust向前端发送事件 | 2h | ⬜ | ___/___ |
**本周产出清单**
- ⬜ 成功运行 "Hello Tauri" 应用
- ⬜ 实现一个 Command前端按钮调用Rust函数计算斐波那契数列
- ⬜ 实现一个 EventRust定时向前端推送系统时间
**关键检查点**
- ⬜ 能解释 Tauri 与 Electron 的核心区别?
- ⬜ 理解 `invoke``emit`/`listen` 的适用场景?
**自我评估**
- Tauri 上手难度:⭐⭐⭐⭐⭐
- 本周实际用时____ 小时
---
### 🟢 第9周Tauri 核心功能实战
**核心目标**:开发一个功能完整的 Markdown 编辑器
| 序号 | 每日学习任务 | 预计时长 | 完成 | 日期 |
|:---:|:---|:---:|:---:|:---|
| 1 | 学习 Tauri State ManagementManaged 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 实战项目参考
| 项目 | 链接 | 说明 |
|:---|:---|:---|
| **CakeBakerMarkdown编辑器** | 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 PlusVue** | 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的学习曲线虽然陡峭但登顶后的风景绝对值得**