陈天 · Rust 编程第一课

陈天 · Rust 编程第一课

00 开篇词 让Rust成为你的下一门主力语言

01 内存:值放堆上还是放栈上,这是一个问题

02 串讲:编程开发中,那些你需要掌握的基本概念

03 初窥门径:从你的第一个Rust程序开始!

04 get hands dirty:来写个实用的CLI小工具

05 get hands dirty:做一个图片服务器有多难?

06 get hands dirty:SQL查询工具怎么一鱼多吃?

07 所有权:值的生杀大权到底在谁手上?

08 所有权:值的借用是如何工作的?

09 所有权:一个值可以有多个所有者么?

10 生命周期:你创建的值究竟能活多久?

11 内存管理:从创建到消亡,值都经历了什么?

12 类型系统:Rust的类型系统有什么特点?

13 类型系统:如何使用trait来定义接口?

14 类型系统:有哪些必须掌握的trait?

15 数据结构:这些浓眉大眼的结构竟然都是智能指针?

16 数据结构:Vec_T_、&[T]、Box_[T]_ ,你真的了解集合容器么?

17 数据结构:软件系统核心部件哈希表,内存如何布局?

18 错误处理:为什么Rust的错误处理与众不同?

19 闭包:FnOnce、FnMut和Fn,为什么有这么多类型?

20 4 Steps :如何更好地阅读Rust源码?

21 阶段实操(1):构建一个简单的KV server-基本流程

22 阶段实操(2):构建一个简单的KV server-基本流程

23 类型系统:如何在实战中使用泛型编程?

24 类型系统:如何在实战中使用trait object?

25 类型系统:如何围绕trait来设计和架构系统?

26 阶段实操(3):构建一个简单的KV server-高级trait技巧

27 生态系统:有哪些常有的Rust库可以为我所用?

28 网络开发(上):如何使用Rust处理网络请求?

29 网络开发(下):如何使用Rust处理网络请求?

30 Unsafe Rust:如何用C++的方式打开Rust?

31 FFI:Rust如何和你的语言架起沟通桥梁?

32 实操项目:使用PyO3开发Python3模块

33 并发处理(上):从atomics到Channel,Rust都提供了什么工具?

34 并发处理(下):从atomics到Channel,Rust都提供了什么工具?

35 实操项目:如何实现一个基本的MPSC channel?

36 阶段实操(4):构建一个简单的KV server-网络处理

37 阶段实操(5):构建一个简单的KV server-网络安全

38 异步处理:Future是什么?它和async_await是什么关系?

39 异步处理:async_await内部是怎么实现的?

40 异步处理:如何处理异步IO?

41 阶段实操(6):构建一个简单的KV server-异步处理

42 阶段实操(7):构建一个简单的KV server-如何做大的重构?

43 生产环境:真实世界下的一个Rust项目包含哪些要素?

44 数据处理:应用程序和数据如何打交道?

45 阶段实操(8):构建一个简单的KV server-配置_测试_监控_CI_CD

46 软件架构:如何用Rust架构复杂系统?

加餐 Rust2021版次问世了!

加餐 代码即数据:为什么我们需要宏编程能力?

加餐 宏编程(上):用最“笨”的方式撰写宏

加餐 宏编程(下):用 syn_quote 优雅地构建宏

加餐 愚昧之巅:你的Rust学习常见问题汇总

加餐 期中测试:参考实现讲解

加餐 期中测试:来写一个简单的grep命令行

加餐 这个专栏你可以怎么学,以及Rust是否值得学?

大咖助场 开悟之坡(上):Rust的现状、机遇与挑战

大咖助场 开悟之坡(下):Rust的现状、机遇与挑战

特别策划 学习锦囊(一):听听课代表们怎么说

特别策划 学习锦囊(三):听听课代表们怎么说

特别策划 学习锦囊(二):听听课代表们怎么说

用户故事 绝望之谷:改变从学习开始

用户故事 语言不仅是工具,还是思维方式

结束语 永续之原:Rust学习,如何持续精进?