为什么要让 Rust 成为你的下一门主力语言,这些大厂都在高薪聘请 Rust 工程师
学习和掌握 Thread 的使用,学会多线程开发的基本数据结构:Arc / Mutex / RwLock。会构建自己的并发哈希表,并使用社区提供的 DashMap。学习和掌握 Future 的使用,掌握异步开发的核心思想的开发方法。掌握线程的使用方法。掌握 Arc、Mutex、RwLock 等多线程开发必备的基本数据结构。学会构建并发哈希表。学会管理线程,掌握线程间的通信、线程调度策略。了解 Send / Sync trait,知道如何解决常见的多线程代码编译错误。掌握 Rust 中异步处理方式。进一步夯实对 trait 的理解。
实战:构建一个简易版 Redis 服务器。深入浅出元编程元编程是 Rust 中一个很重要的工具,本周的内容会带你理解和掌握元编程对 Rust 和其他各种编程语言的帮助。通过使用 darling / syn / quote,理解 Rust 元编程的基本思路。学会使用 derive 宏来减少不必要的代码重复。夯实对 Rust 基本语法,数据结构和 trait 的理解。
掌握宏的使用方法和适用场景。掌握元编程的编写技巧和适用场景。继续探索 Rust 语法和数据结构的应用技巧,理解 Rust 的设计理念。熟练使用 darling crate,同时掌握 syn 和 quote 这两个基础 crate。学会使用 Cargo expand 了解 derive macro 背后发生的事情。
学会使用 macro_rules! 处理简单的宏替换。了解 AST,以及基本的遍历 AST 的方法。
错误处理:anyhow、thiserror。日志处理:tracing、tracing-subscriber。宏:derive_builder、derive_more、strum、darling。数据转换:serde 生态。异步运行时:tokio 生态。应用开发:tower 生态。关系型数据库:sqlx 生态。如何高效利用 Rust 社区信息给自己提供帮助。构建高性能互联网应用
掌握处理 JSON、YAML 等不同类型的文件格式的方法。实战:构建强大的微服务(CRM 服务系统):数据建模、服务建模,并增加适当的中间件完善系统功能。完善微服务需要的其他基础服务:授权请求等。轻松处理各种数据
掌握 nom,能够处理简单的语法解析。掌握 pest,能够构建自己的语法并解析它。简单了解如何嵌入 rhai / rlua / pyo3 / rquickjs / deno。构建一个类似于 deno deploy 的服务,允许用户运行他们的 typescript/javascript 代码。用 pyo3 和 axum 构建一个类似 nextjs 的 web framework。让 Rust 代码成为其他语言编写的系统的基石几乎所有语言都和 C 语言的应用程序接口兼容,因此可以使用 C 语言来编写高性能的组件。然而,这样的 C 语言代码很难撰写和维护,需要撰写大量繁琐且丑陋的脚手架代码。本周我们就来介绍如何用 Rust 实现同样的目的,学习如何把 Rust 的广阔生态和强大的性能带入到其他语言的生态中,扩展其他语言的能力。
在 nodejs 中使用 Rust 模块:构建一个为 nodejs 提供 blake3 哈希的支持。在 python 中使用 Rust 模块:构建一个 python 版本的嵌入式的 Vector DB。打造跨端的桌面(和移动端)应用
构建 Rust 产品前的思考:架构、数据结构、接口设计。架构设计:根据业务核心流程设计系统架构。数据结构:设计核心业务流程需要的数据结构和对应的接口。数据库建模:使用 sqlx 及 Postgres 设计数据库。数据库迁移:学习掌握 sqlx 进行数据库迁移的基本要领。连接 OpenAI:打造进阶版 ChatGPT。构建更好的 ChatGPT:服务端核心逻辑以及 API 实现
学习使用 Smithy,掌握 Smithy IDL,使用 Smithy 生成 OpenAPI spec。学习如何在 axum 中通过 tower 接口嵌入 Smithy 的支持。实现架构中需要的 API 接口。完善用户注册和登录功能。构建更好的 ChatGPT:前端、部署与监控
在这个加餐里,我们会深度阅读 Google 的论文 zanzibar,学习 Google 如何应对数十亿用户每秒数千万次的授权访问,然后用 Rust 实现其核心要素。在实现 zanzibar 的核心结构和算法的过程中,我们一起着重学习如何把论文转化成代码的能力,这种能力将会是工程师职业生涯中最核心的能力之一。
对比授权系统的基本解决思路。精读 zanzibar 论文。在理解 zanzibar 的基础上,对其精简,构建相应的 Rust 版本。使用 nom 或者 pest 构建 zanzibar 模型的解析(user – object – relation – relation tuple)。从社区中寻找合适的 graph database 来存储 zanzibar 授权信息。构建 API 提供授权服务。产品化 zanzibar 服务的建议(如何达到需要的可扩展性和服务 SLA – e.g. 99.99% uptime)。
Rust 入门挑战:学习曲线陡峭
领域内实力派讲师,带你丝滑跨越 Rust 门槛
讲师好评如潮,听一听真实的声音
循序渐进的课程内容,助你平滑迁移到 Rust 语言
从基础到进阶,稳步提升 Rust 编程能力
课程大纲
- 实战一:构建简单的 HTTP 静态页面服务器
- 实战二:构建简易版 Redis 服务器
- 实战三:构建高性能聊天应用
- 实战四:构建强大高效的 CRM 微服务
- 实战五:构建更好的 ChatGPT
-
Rust 的基本语法
-
Rust 常用数据结构
-
项目基本组织结构及 CI/CD
-
Cargo 及相关工具
-
Rust 的常见编程技巧
-
单元测试、集成测试和性能测试