# 🦀 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的学习曲线虽然陡峭,但登顶后的风景绝对值得!**