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 通过 Crates 去管理相关的包, 和整个项目代码从项目建立,构建到测试,到运行部署的周期, 对比起在 C/C++ 开发时的杂乱无章,真的是太舒服了。

用什么开发工具 Rust ?

一个好的工具,可以提升开发的效率,开发 Rust 我强烈还是推荐用 Visua Studio Code ,里面有非常完善 Rust 支持。 rust-analyzer 和 CodeLLDB , crates 三大插件安装好, 你就可以非常高效地完成 Rust 的开发。

CA周记 - 2022年的第一课Rust_第1张图片

 我的课堂上也应用了另外一种方式用 Jupyter Notebook 来完成, 通过 Notebook 你可以完成相关的一些语法学习,以及做一些数据分析。

CA周记 - 2022年的第一课Rust_第2张图片

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

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 应用在哪里

Rust 的应用场景很宽,基于自身特点,常用于一些底层,后端服务,网络编程的工作。官方也列出了一些主要应用场景

CA周记 - 2022年的第一课Rust_第3张图片

在这次系列课程里,我主要针对 Web 后端的工作做了相关介绍,当然也提及到 WebAssembly 。建议小伙伴可以回看我的 Rust 课程第二第三讲。

Rust 的 Web 框架

Actix 和 Rocket 都是非常成熟的 Rust 页面服务框架,两者不相伯仲,我的课程以 Actix 框架为主 ,当然你也可以尝试一下 Rocket 这个框架 。 以下是两个框架的一些介绍, 自己可以按照实际情况进行框架的选择

CA周记 - 2022年的第一课Rust_第4张图片

我个人是比较注重架构,好的架构是一个好的项目的开始,做后端服务,大家离不开 MVC 这个熟悉的模式, 结合 Rust 的包的知识可以把 Actix 的后端解决方案架构出非常好的项目。建议大家在架构 Rust 后端服务的时候,参考下我的第三讲所提到的方式。

课程的遗漏

三周的课程是非常短的, Rust 涉及的点还有很多。例如如何用 Dapr 和 Web Assbembly 的应用 也是我想讲的,接下来我会通过 Work Shop 的方式和大家说说,敬请期待!

最后附上这三个系列课程

点击进入看 Rust 编程语言 - Rust 基础学习

点击进入看 Rust 编程语言 - Rust 网页编程 

 点击进入看 Rust 编程语言 - Rust 网络编程&IoT编程

你可能感兴趣的:(CA周记,rust,开发语言,后端)