Rust 该如何学习,以及 我的 Rust 视频课程自荐

原创
06/26 14:04
阅读数 0

大家好,今天自荐一下我和极客时间合作的这门视频课程:《张汉东的Rust实战课》。

其实我不太想自荐。

第一个原因,这门课程目前还在更新中。我本来是打算全部更新完再做宣传的。

第二个原因,自己推荐自己的课程,有种王婆卖瓜的嫌疑。

但仔细一想,这门毕竟是自己辛苦付出的一门课程,做这门课程的初衷不也是为了让别人看吗?

虽然也有很多人课程的学习者帮我宣传,但自己做的课程,只有自己更了解它。

所以今天就来宣传了!

【广告时间】  新人首单仅 ¥69.9,原价 ¥199, 3 折入手,非常划算。 

入手链接(阅读原文可跳转):http://gk.link/a/10tis

引子

2020年大概四月份,极客时间邀请我出一门 Rust 视频课程。

我当时是拒绝的。

写书很累,但视频课程我之前也录过,比写书累太多了。

为了保证视频效果,极客时间的视频课程需要去极客时间公司专业录音棚里录。这就意味着,我去极客时间公司光交通来回就得四小时。

但我考虑以后还是答应了,有几点原因:

  1. 弥补我写书的一些遗憾。
    1. 《Rust 编程之道》在出版的时候,官方异步编程并没有稳定,所以书中异步内容有点过期。
    2. 对 Rust 语言重新进行一遍系统梳理,这是我自己的再一次输出,反思《Rust 编程之道》的内容。再一次输出,是对自己的一次洗礼。
  2. 多了创收机会。我其实严格来说,属于自由职业者。并没有固定的工资可拿,所以创收对我也是重要的。
  3. 尝试一下新兴的知识付费。因为极客时间的课程模式,是边更新边销售,和传统的出版还是比较有区别的。

所以,综合考虑,我就答应了。

这门课程特色是什么?

课程定位

对于视频课程,最初我其实并没有什么存货。合作之初,我只确定了大纲。

大纲的作用,一方面是为了估算课程的章节数,另一方面是定位课程内容。

这是最初的定位:

这门课程内容一共七章,分为两大部分,第一部分侧重于 Rust 语言核心概念的讲解,在第二部分,我会手把手带你编写一个轻量级的异步 Web 框架。

第一部分:Rust 语言核心概念讲解,包含了三个阶段:

  • 第一阶段,进一步梳理语法,到 Rust 语言和其他语言的异同,消除 Rust 语言的陌生感。
  • 第二阶段,对 Rust 语言核心概念进行讲解,帮你度过 Rust 语言学习的难关。
  • 第三阶段,侧重于 Rust 异步编程,让你对 Rust 异步编程有一个系统性认知。

第二部分:侧重实战,带你编写一个轻量级异步 Web 框架,包含三个阶段:

  • 第一阶段,构建异步框架基本骨架,这部分是课程的重中之重,学完后你会对 Rust 的一些实践技巧、抽象方式、设计模式等有所掌握。
  • 第二阶段,为异步框架扩展功能——为框架扩展内置的 HTTP Client、TLS 支持、ORM 支持、WebSocket、Redis 和 Cache 支持等基本功能。
  • 第三阶段,使用异步框架和 WebAssembly 技术开发一个小应用。

这样的课程结构,是出于我对 Rust 的认识,以及自己的学习经验来组织的。

  1. Rust 语言是一门必须先对概念有一定了解才能上手的语言。因为编译器静态检查是语言的一部分。
  2. 我认为所谓实战,是对概念的验证和反馈。所以,先得有概念模型,再去实战,效果是比较好的。
  3. 我的学习经验是:先掌握语法,再结合语言的设计哲学去了解语法背后的概念,再将其应用起来。

所以,课程会分为上面两大部分。

并且这门课程我是假设学习者都对 Rust 语法有了一定的了解,配合进阶的。因为我考虑到现在市面上不管是免费还是收费,都已经有很好的 Rust 入门学习资料了,掌握 Rust 语法应该不难。

这门课程定位其实和《Rust 编程之道》相似,只不过内容侧重不同。书本侧重于全面了解 Rust ,视频课程则侧重于 Rust 异步编程。

课程章节介绍 (副标题:Rust 该如何学习)

最初的课程我是分为七章的。但经过实际几个月的录制,这门课程已经成功成为了极客时间更新最慢的课程 (捂脸)。

一方面是我并不是全职做这门课程,另一方面是课程内容真的有点多。

当然慢有慢的好处,我终于拖到了 Rust 异步编程生态已经趋于稳定,这样相关代码基本三五年内不会过期。

所以,现在的计划将后三章合并成一章了,一共四大章。目前基本已经录制完前三章。

下面介绍下各个章节特色。

第一章 :梳理语法知识

第一章之所以这么设计,一方面是为了让学习者们都能达到一个统一的基础水平。

这也是我的学习习惯的一种呈现:学习分阶段和层次。这一阶段,要求学习者必须对 Rust 语法能分门别类的建立一个初始体系。

经过分类,建立对 Rust 语法体系的一个基本模型。然后去学习语法背后的东西,这样一层一层递进学习。

这一章的课程内容就是为了帮你查漏补缺,甚至教你如何阅读 Rust 文档。

下图是已上新目录:


第二章:掌握 Rust 概念核心

在语法梳理的差不多之后,就需要集中理解 Rust 的核心概念了。

Rust 的核心概念包括:

  • 所有权机制。
  • 借用以及生命周期。
  • 线程安全机制
  • trait 和 泛型
  • 错误处理
  • Rust 元编程机制
  • Unsafe Rust

以上,是我认为掌握 Rust 必须要学习的核心概念。而且这一章内容,也是讲解的比较深入,比《Rust 编程之道》深入和细致。

下图是本章已更新目录:


第三章:异步编程基础

在掌握完核心概念之后,就准备进入实践吧。

Rust 是一门通用的系统编程语言,你可以用它开发命令行工具,开发数据库,开发操作系统,也可以用它开发网络服务和 Web 应用,云服务等等。所以选择一个实践的方向比较好。

这门课程选择的是 Web 开发方向。

Rust 的一个特色是线程安全,默认消除数据竞争,这样就充分地利用多线程并发编程。

但是要应对 I/O 密集的高并发场景,只有多线程是远远不够的。所以 Rust 增加了语言级的异步编程支持,这是系统语言出现以来首个语言级异步支持。

Rust 语言的异步编程支持无疑是 Rust 语言的亮点,也是 Rust 语言的杀手锏之一。

Rust 异步编程和其他语言的异步编程有什么区别呢?

Rust 异步编程是如何实现的?

Rust 异步运行时到底什么?为什么没有出现在标准库里?为什么会有那么多异步运行时?

Rust 异步运行时工作机制是什么?不同运行时有什么区别?

这些问题基本在本章都会有所解答。

这一章的内容组织是自底向上的:

「异步 I/O -> Mio -> Reactor 模型 -> 异步 executor -> 异步 task 抽象 -> future 异步编程模型 -> async/await 语法」

因为我认为,掌握异步编程就得掌握上面这些关键环节,知识也是这样一层一层构建完整的。

每个环节都会有概念和实例代码,课程也会带你阅读 smol / async-std/ tokio 的关键源码,帮你充分理解概念。

下图是本章已更新目录(本章还未全部更新完毕):


第四章:实现 异步 Web 框架

本章原本是包含三章内容,现在将其合并为一章。

这一章内容带你从零开始构建一个异步 Web 框架。目前这一章内容正准备开始更新。

这一章内容目前还没有详细的节数,但内容会包括以下几个方面

  1. 比较市面上的 异步 Web 框架的架构区别:Rocket/ Active-web/ Wrap 等。
  2. 探索如何设计一个自己的异步 Web 框架。
  3. 基于 tokio 异步运行时实现一个最小化的方便构建 JSON API 微服务 的 Web 框架 ,支持如下功能:
    1. 实现 MVC 架构。
    2. 高效方便的路由机制。
    3. 方便的 基于 宏 的 endpoint 设置。(类 Rocket)
    4. 提供一些方便的内置 helper 来处理 URL 和 JSON 。(类 Rocket)
    5. 基于 Plugin 的中间件支持,并且尝试加入 WebAssembly  plugin 机制。(类 Rocket)
    6. 内置对 ORM/ RPC/ Websocket/ Redis/ 消息队列 等 生态组件的统一支持
    7. 支持 测试。
    8. 使用此框架 ,结合 Yew (或其他WebAssembly 前端框架) 来实现一个简单的 TODO 应用。

实现这个异步 Web 框架,不仅仅是对 Rust 语言的一次应用,更是对 Rust 语言工程化和 API 设计的一次探索。

学习 Rust 能带来什么好处?

学习 Rust 带给我最大的好处就是:Rust 让我再次爱上编程

在接触 Rust 之前,我是浅薄的:我以为自己编程能力已经够用了,感觉不需要学习什么新东西了,感觉提升到了瓶颈。

在接触 Rust 之后,我看到了提升自己的机会:

  1. 在和 Rust 编译器斗争过程中,让我充分认识到自己的基础哪里不足。
  2. Rust 独特的设计,让我重新反思自己对编程的理解。
  3. Rust 语言足够通用,让我不仅仅局限于之前的单一技术领域,成为我踏足和学习各个应用领域的一把钥匙,让我充分领略编程的魅力。

其实就是一句话,Rust 让我成长很多。我认为,这就是 Rust 带给我最大的好处了。

希望 Rust 也能帮你成长!

再一次广告时间

原价 ¥199 的课程,现在入手还有新人首单价 ¥69.9,才 3 折不到,性价比真的很高。入手链接(点击阅读原文跳转): http://gk.link/a/10tis



本文分享自微信公众号 - 觉学社(WakerGroup)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部