Skip to content

Commit

Permalink
docs: 添加 Rust 短学期内容 (#108)
Browse files Browse the repository at this point in the history
  • Loading branch information
HobbitQia committed Oct 15, 2023
1 parent ccb7b28 commit 52ba25c
Show file tree
Hide file tree
Showing 3 changed files with 67 additions and 0 deletions.
1 change: 1 addition & 0 deletions docs/short_term/index.md
Expand Up @@ -14,6 +14,7 @@
- 大二短学期
- 课程综合实践 Ⅱ:2.5 学分
- [C++ 项目管理及工程实践](cpp_project/)
- [Rust 开发实训](rust/)
- ... 待补充
- 大三短学期
- [工程实践](engineering_practice/):2.0 学分(仅 AI)
Expand Down
65 changes: 65 additions & 0 deletions docs/short_term/rust/index.md
@@ -0,0 +1,65 @@
---
abbrs:
- Rust 短学期
---

# Rust 开发实训
<div class="badges">
<span class="badge is-badge">大二短学期</span>
<span class="badge is-badge">课程综合实践 Ⅱ</span>
</div>

## 课程学习内容

这门课内容非常之多,几乎把 Rust 从入门到实践开发都过了一遍,主要有下面的部分:

* Rust 语言基础
* Rust 高级特性(泛型、字符串、迭代器、智能指针、宏)
* Rust 异步系统(Future、async/await)
* Rust RPC 框架(主要是字节自研开发的 [volo 框架](https://github.com/cloudwego/volo)
* Rust HTTP 框架使用

上课内容很多,但都是以很快的速度带过,~~做好心理准备~~

### 先修要求

理论上没有先修要求,但是最好能掌握一门现代的面向对象的编程语言(如 C++/Java),对数据结构、操作系统、数据库系统有一定的了解。

## 任课教师

本课程挂的是张寅老师的名字,但张老师只负责最后登分,实际上的授课老师是来自字节跳动的 [CloudWeGo 团队](https://github.com/cloudwego) 的学长们,给分也是由他们完成。学长们都是在字节跳动从事相关开发工作,因此本身水平是很高的,人也很好,回答问题都很热情。不过大部分是第一次讲课,因此讲课水平参差不齐。此外虽然风格不同,但大家几乎都是翁恺老师所说 Nice to have 的践行者,上课的进度很快,需要课下自己消化。

虽然查老师上张寅老师的短学期课程评价不高,但是就 2023 年短学期的情况来看,给分相当慷慨。

## 分数构成

* 平时作业(50%)

每节课都会布置与当堂课讲的内容相关的作业,基本上只有一两天时间。对于之前没有学过 Rust 的同学来说,后面几次作业难度大,大家基本上都是抄的 GitHub 上的开源代码。下面列出 2023 年短学期的课程作业:

* 完成命令行搜索工具 myfind
* 完成 Rust 高级特性的相关 Exercise(泛型、字符串、迭代器)
* 完成 Rust 高级特性的相关 Exercise(智能指针、宏)
* 完成一个简易多任务多线程的 Runtime(基于字节自研的 [volo 框架](https://github.com/cloudwego/volo)
* 完成一个简易的 Mini-Redis
* 完成一个简易的 HTTP 服务器(利用 axum)
* 因为大作业时间紧张,这个作业最后变为了 bonus。

* 大作业(50%)

三人一组,最后进行展示答辩,评委是字节团队的老师和学长。因为课程紧张,从作业布置到展示只有三天不到的时间。2023 年短学期的大作业是基于平时作业开发的 Mini-Redis 进行拓展,要求实现 AOF 持久化、Redis 主从架构、Redis Cluster。

字节跳动十分推崇开源,因此上述作业均要求公开上传到 GitHub 仓库。

## 参考资料

这里给出 2023 年短学期的[课前准备文档](https://bytedance.feishu.cn/docx/DX02deweRowa9xxsAEzcS122n1c)

* [Rust 程序设计语言](https://www.rustwiki.org.cn/zh-CN/book/title-page.html)
* [Rust 圣经](https://course.rs/about-book.html)
* [rustlings](https://github.com/rust-lang/rustlings) 里面有很多 Rust 相关的小练习

下面是笔者 2023 年短学期的课程仓库:

* 平时作业:https://github.com/HobbitQia/Rust-2023-Homework
* 大作业:https://github.com/HobbitQia/Mini-Redis
1 change: 1 addition & 0 deletions mkdocs.yml
Expand Up @@ -111,6 +111,7 @@ nav:
- 课程综合实践 Ⅱ:
- short_term/index.md
- C++ 项目管理及工程实践: short_term/cpp_project/index.md
- Rust 开发实训: short_term/rust/index.md
- 其他课程:
- others/index.md
- 常微分方程: others/ode/index.md
Expand Down

0 comments on commit 52ba25c

Please sign in to comment.