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

28 KiB
Raw Blame History

🦀 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 学习 enummatch第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支持添加任务、列出任务、标记完成、删除
  • 掌握 Optionmap, 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 学习常用标准库 TraitDisplay, Debug, Clone, PartialEq 2h /
5 实现自定义 Trait为不同类型实现同一行为 2h /
6 学习闭包Closures与迭代器Iterators 2h /
7 实战:用泛型和 Trait 实现通用排序 + 迭代器处理文件 2h /

本周产出清单

  • 实现一个通用排序函数 fn sort<T: Ord>(list: &mut [T])
  • 为自定义结构体实现 DisplayDebug
  • 使用迭代器处理大文件(逐行读取,统计行数/单词数)

自我评估

  • 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 理解 SendSync 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 前半部分 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 的核心区别?
  • 理解 invokeemit/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周项目设计与核心功能开发

选择你的实战项目

  • 项目AAPI测试工具类似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 / AxumRust Web后端开发
  • Diesel / SQLxRust ORM与数据库
  • WASMRust编译到WebAssembly
  • 嵌入式Rustno_std 开发
  • 开源贡献为Rust项目提交PR
  • 工作应用将Rust/Tauri引入实际工作

最有价值的3个学习资源




给后来者的建议




📚 附录:常用命令速查

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