现代编程语言有很多,在我的编程学习里面有小学阶段的 LOGO , 中学阶段的 Pascal ,也有在大学阶段的 C/C++ , Java , .NET ,再到工作的 Objective-C , Swift , Go ,Kotlin ,以及 Rust 。在结束了2021年4个月的人工智能课程后,我在想有什么技能可以带给各位 Reactor 的小伙伴, 我有想过是我司三朵云上很 Cool 的产品,还是一些解决方案的事件。在权衡后, 我决定带给大家 Rust 作为2022年新的开始。
不知道从哪个时间开始,每个语言诞生都在说自己的高性能,可靠性,和生产力。倘若你真正入坑后,总会有各种抱怨。 我了解 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 通过 Crates 去管理相关的包, 和整个项目代码从项目建立,构建到测试,到运行部署的周期, 对比起在 C/C++ 开发时的杂乱无章,真的是太舒服了。
一个好的工具,可以提升开发的效率,开发 Rust 我强烈还是推荐用 Visua Studio Code ,里面有非常完善 Rust 支持。 rust-analyzer 和 CodeLLDB , crates 三大插件安装好, 你就可以非常高效地完成 Rust 的开发。
我的课堂上也应用了另外一种方式用 Jupyter Notebook 来完成, 通过 Notebook 你可以完成相关的一些语法学习,以及做一些数据分析。
在课后也有一些小伙伴问我如何安装。这里我就附上一些安装步骤。
1. Python环境安装和基本的 Jupyter Lab 安装
请参考我的之前的文档 :
Windows 安装
https://github.com/kinfey/HandsOnLab/blob/main/MLNetLab/docs/00_Install.pdf
Linux/macOS 安装
https://github.com/kinfey/HandsOnLab/blob/main/MLNetLab/docs/00_Linux_WSL_MacOS_Install_Python.pdf
2. 组件安装
cargo install evcxr_jupyter
evcxr_jupyter --install
注意: 这里有不同的系统配置要求,更多可以参考这里
https://github.com/google/evcxr/blob/main/evcxr_jupyter/README.md
Rust 的应用场景很宽,基于自身特点,常用于一些底层,后端服务,网络编程的工作。官方也列出了一些主要应用场景
在这次系列课程里,我主要针对 Web 后端的工作做了相关介绍,当然也提及到 WebAssembly 。建议小伙伴可以回看我的 Rust 课程第二第三讲。
Actix 和 Rocket 都是非常成熟的 Rust 页面服务框架,两者不相伯仲,我的课程以 Actix 框架为主 ,当然你也可以尝试一下 Rocket 这个框架 。 以下是两个框架的一些介绍, 自己可以按照实际情况进行框架的选择
我个人是比较注重架构,好的架构是一个好的项目的开始,做后端服务,大家离不开 MVC 这个熟悉的模式, 结合 Rust 的包的知识可以把 Actix 的后端解决方案架构出非常好的项目。建议大家在架构 Rust 后端服务的时候,参考下我的第三讲所提到的方式。
三周的课程是非常短的, Rust 涉及的点还有很多。例如如何用 Dapr 和 Web Assbembly 的应用 也是我想讲的,接下来我会通过 Work Shop 的方式和大家说说,敬请期待!
最后附上这三个系列课程
点击进入看 Rust 编程语言 - Rust 基础学习
点击进入看 Rust 编程语言 - Rust 网页编程
点击进入看 Rust 编程语言 - Rust 网络编程&IoT编程