乐趣区

关于rust: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 的开发。

我的课堂上还应用了另外一种形式——Jupyter Notebook。通过 Notebook,你能够实现一些相干的语法学习,以及做一些数据分析。

课后也有一些小伙伴问我如何装置。在这里我附上装置步骤。

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 的利用场景很宽泛。基于本身特点,罕用于一些底层、后端服务,以及网络编程的工作。官网也列出了一些次要的利用场景:

在这次系列课程中,我次要针对 Web 后端的工作做了相干介绍,当然也提及到了 WebAssembly。倡议大家能够回看我的 Rust 课程第二、第三讲。

Rust 的 Web 框架

Actix 和 Rocket 都是十分成熟的 Rust 页面服务框架,两者不相伯仲。我的课程以 Actix 框架为主,当然你也能够尝试一下 Rocket 这个框架。
以下是两个框架的介绍,能够依据理论状况进行框架的抉择。

我集体比拟重视架构,好的架构是一个好的我的项目的开始。做后端服务离不开 MVC 这个相熟的模式,联合 Rust 的包的常识,咱们能够用 Actix 的后端解决方案架构出一个十分好的我的项目。倡议大家在架构 Rust 后端服务时,能够参考我的 Rust 课程第三讲。

课程的脱漏

三周的课程是十分短的,而 Rust 波及的点还有很多。例如如何用 Dapr,以及 Web Assbembly 的利用等也是我想讲的内容。
接下来我会通过 Workshop 的形式持续同大家分享,敬请期待!

最初附上这个系列课程的三讲内容:
Rust 编程语言 – Rust 根底学习
Rust 编程语言 – Rust 网页编程
Rust 编程语言 – Rust 网络编程 &IoT 编程

退出移动版