开篇词|让Rust成为你的下一门主力语言
01|内存:值放堆上还是放栈上,这是一个问题02|串讲:编程开发中,那些你需要掌握的基本概念加餐|这个专栏你可以怎么学,以及Rust是否值得学?
03|初窥门径:从你的第一个Rust程序开始!04|get hands dirty:来写个实用的CLI小工具05|get hands dirty:做一个图片服务器有多难?06|get hands dirty:SQL查询工具怎么一鱼多吃?07|所有权:值的生杀大权到底在谁手上?08|所有权:值的借用是如何工作的?09|所有权:一个值可以有多个所有者么?10|生命周期:你创建的值究竟能活多久?11|内存管理:从创建到消亡,值都经历了什么?加餐|愚昧之巅:你的Rust学习常见问题汇总12|类型系统:Rust的类型系统有什么特点?13|类型系统:如何使用trait来定义接口?14|类型系统:有哪些必须掌握的trait?15|数据结构:这些浓眉大眼的结构竟然都是智能指针?16|数据结构:Vec
加餐|期中测试:来写一个简单的grep命令行加餐|期中测试:参考实现讲解
23|类型系统:如何在实战中使用泛型编程?24|类型系统:如何在实战中使用trait object?25|类型系统:如何围绕trait来设计和架构系统?加餐|Rust2021版次问世了!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/CD46|软件架构:如何用Rust架构复杂系统?大咖助场|开悟之坡(上):Rust的现状、机遇与挑战大咖助场|开悟之坡(下):Rust的现状、机遇与挑战用户故事|语言不仅是工具,还是思维方式
加餐|代码即数据:为什么我们需要宏编程能力?加餐|宏编程(上):用最“笨”的方式撰写宏加餐|宏编程(下):用 syn/quote 优雅地构建宏
结束语|永续之原:Rust学习,如何持续精进?期末测试|来赴一场满分之约!
特别策划|学习锦囊(一):听听课代表们怎么说特别策划|学习锦囊(二):听听课代表们怎么说特别策划|学习锦囊(三):听听课代表们怎么说