CA周记 2022年的第一课 - Rust

现代编程语言有很多,在我的编程学习里面有小学阶段的 LOGO , 中学阶段的 Pascal ,也有大学阶段的 C/C++、Java、.NET,再到工作的 Objective-C 、Swift、Go、Kotlin,以及 Rust 。2021年,4个月的人工智能课程结束后,我在想有什么技能可以带给各位 Reactor 的小伙伴。我有想过是我司三朵云上很 Cool 的产品,还是一些解决方案的实践。在权衡后,我决定给大家带来 Rust,作为2022年新的开始。
为什么选择 Rust? 不知从什么时候开始,每个语言诞生都在说自己的高性能、可靠性和生产力。而当你真正入坑后,总会有各种抱怨。我了解 Rust 是3年前衣明志老师介绍的。他是怎么安利的我忘记了,不过我就踏入了这个坑。
Rust 的语法和 C++ 很像, 具有高速和内存安全性。Rust 是系统级别的编程语言。
我们来看看 Rust 和 C/C++ 的一些关于内存安全的对比:

int checkStr() { char *str = strdup("Hello Reactor!"); return 0; }

在 C/C++ 中,上述语法忘记了释放指针,导致了内存泄露,这是一个非常基础的问题。但在 Rust 中,我们可以通过作用域去避免同样的问题。
fn checkStr(){ let str = String::from("Hello Reactor!"); }

单从内存安全性上,Rust 就足够好用。另外,Rust 还可以通过 Crates 去管理相关的包。整个项目代码从项目建立、构建到测试,再到运行部署的周期,对比在 C/C++ 开发时的杂乱无章,真的是太舒服了。
用什么工具开发 Rust? 一个好的工具,可以提升开发的效率。开发 Rust 我还是强烈推荐 Visua Studio Code。里面有非常完善的 Rust 支持。只需将 rust-analyzer、CodeLLDB以及crates 这三大插件安装好,你就可以非常高效地完成 Rust 的开发。
CA周记 2022年的第一课 - Rust
文章图片

我的课堂上还使用了另外一种方式——Jupyter Notebook。通过 Notebook,你可以完成一些相关的语法学习,以及做一些数据分析。
CA周记 2022年的第一课 - Rust
文章图片

课后也有一些小伙伴问我如何安装。在这里我附上安装步骤。
Python 环境安装和基本的 Jupyter Lab 安装
请参考我之前的文档
Windows 安装
Linux/macOS 安装
组件安装
cargo install evcxr_jupyter evcxr_jupyter –install

注意:这里有不同的系统配置要求,更多内容请参考: https://github.com/google/evcxr/blob/main/evcxr_jupyter/README.md
Rust 的应用 Rust 的应用场景很广泛。基于自身特点,常用于一些底层、后端服务,以及网络编程的工作。官方也列出了一些主要的应用场景:
CA周记 2022年的第一课 - Rust
文章图片

在这次系列课程中,我主要针对 Web 后端的工作做了相关介绍,当然也提及到了WebAssembly 。建议大家可以回看我的 Rust 课程第二、第三讲。
Rust 的 Web 框架 Actix 和 Rocket 都是非常成熟的 Rust 页面服务框架,两者不相伯仲。我的课程以 Actix 框架为主 ,当然你也可以尝试一下 Rocket 这个框架。
以下是两个框架的介绍,可以根据实际情况进行框架的选择。
CA周记 2022年的第一课 - Rust
文章图片

我个人比较注重架构,好的架构是一个好的项目的开始。做后端服务离不开 MVC 这个熟悉的模式,结合 Rust 的包的知识,我们可以用 Actix 的后端解决方案架构出一个非常好的项目。建议大家在架构 Rust 后端服务时,可以参考我的 Rust 课程第三讲。
课程的遗漏 三周的课程是非常短的,而 Rust 涉及的点还有很多。例如如何用 Dapr,以及 Web Assbembly 的应用等也是我想讲的内容。
接下来我会通过 Workshop 的方式继续同大家分享,敬请期待!
【CA周记 2022年的第一课 - Rust】最后附上这个系列课程的三讲内容:
Rust 编程语言 - Rust 基础学习
Rust 编程语言 - Rust 网页编程
Rust 编程语言 - Rust 网络编程&IoT编程

    推荐阅读