CA周记 | 2022年的第一课Rust

茧型超类
• 阅读 1546

现代编程语言有很多,在我的编程学习里面有小学阶段的 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

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

CA周记 | 2022年的第一课Rust

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

  1. Python环境安装和基本的 Jupyter Lab 安装

请参考我的之前的文档 :

Windows 安装

https://github.com/kinfey/Han...

Linux/macOS 安装

https://github.com/kinfey/Han...

  1. 组件安装

cargo install evcxr_jupyter
evcxr_jupyter --install

注意: 这里有不同的系统配置要求,更多可以参考这里 https://github.com/google/evc...

关于 Rust 应用在哪里

Rust 的应用场景很宽,基于自身特点,常用于一些底层,后端服务,网络编程的工作。官方也列出了一些主要应用场景
CA周记 | 2022年的第一课Rust
在这次系列课程里,我主要针对 Web 后端的工作做了相关介绍,当然也提及到 WebAssembly 。建议小伙伴可以回看我的 Rust 课程第二第三讲。

Rust 的 Web 框架

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

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

CA周记 | 2022年的第一课Rust

课程的后续补充

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

最后附上这三个系列课程

CA周记 | 2022年的第一课Rust

点击进入看 Rust 编程语言 - Rust 基础学习
CA周记 | 2022年的第一课Rust
点击进入看Rust 编程语言 - Rust 网页编程

CA周记 | 2022年的第一课Rust

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

点赞
收藏
评论区
推荐文章
Stella981 Stella981
3年前
Rust学习笔记#6:所有权系统
!(https://oscimg.oschina.net/oscnet/up0b8d4b9e5e3854503a73fd494cd4b53d984.JPEG)引子:段错误与内存安全在刚开始接触Rust的时候,我们就提过Rust语言的定位:Rustisasystem'sprogramminglanguagethatr
Stella981 Stella981
3年前
Rust开发环境搭建
1.Rust概述按照百度百科的说法,Rust是一门系统编程语言,专注于安全,尤其是并发安全,支持函数式和命令式以及泛型等编程范式的多范式语言。Rust在语法上和C类似,但是设计者想要在保证性能的同时提供更好的内存安全。Rust最初是由Mozilla研究院的GraydonHoare设计创造,然后在DaveHerman,Brend
Stella981 Stella981
3年前
Rust基金会正式成立
Rust项目正式脱离Mozilla,Rust核心团队宣布新的Rust基金会成立,从Mozilla接手所有商标以及资产,而10位董事会成员,有5位来自创始公司AWS、华为、Google、微软和Mozilla,以及5位来自项目领导层级。Rust核心团队在去年8月,发布了将成立Rust基金会的消息,官方提到,由于Rust项目持续发展,已经到了有法律和财
Wesley13 Wesley13
3年前
GCC编译过程记
GCC编译过程记一、引言   对于编程工作者来说,GCC是一个熟悉的名字,它的全称是“GNUCompilerCollection”。GCC是一组编译器集合,目前其支持C、C、ObjectiveC、ObjectiveC、Go和RBIG语言的编译。本篇博客主要总结使用GCC进行代码编译的方法以及从源文件生成
Stella981 Stella981
3年前
Rust语言宏原理及开发教程
Rust语言最强大的一个特点就是可以创建和利用宏/Macro。不过创建Rust宏看起来挺复杂,常常令刚接触Rust的开发者心生畏惧。这片文章的目的就是帮助你理解RustMacro的基本运作原理,学习如何创建自己的Rust宏。相关链接:在线学编程(https://www.oschina.net/action/GoToLink?urlhttp%3
文盘Rust -- FFI 浅尝 | 京东云技术团队
rustFFI是rust与其他语言互调的桥梁,通过FFIrust可以有效继承C语言的历史资产。本期通过几个例子来聊聊rust与C语言交互的具体步骤。
绣鸾 绣鸾
1年前
IntelliJ IDEA 2023.2.5 for Mac免登录
是一款功能强大的集成开发环境(IDE),为开发人员提供了许多特色功能,以下是其特色介绍:新增语言支持:IntelliJIDEA2023新增对多种编程语言的支持,包括Kotlin、TypeScript、Rust等。这使得开发人员可以在同一个IDE中同时开发不
非凸科技 非凸科技
3年前
Rust开发者大会,内容早知道!
在量化交易中,总会发现有一部分「回撤」是在策略意料之外的,如进程闪退、上下游出问题等。那么,Rust在量化场景中的应用,相较于C,对回撤产生了什么样的影响呢?非凸科技量化策略负责人将从“自身系统稳定”与“高效应对风险”两个方面进行全面解答,欢迎锁定「本周日14:00」—分论坛「Rust商业实践」!时间:7月31日(本周日)参会:http://rust
非凸科技 非凸科技
3年前
用Rust编写的Linux内核GPU驱动程序,或将到来
外媒Phoronix报道,AsahiLinix的核心开发者AsahiLina正在探索用Rust编程语言编写该DRM内核GPU驱动程序的可行性。如果成功了,这将是第一个用Rust语言编写的Linux内核GPU驱动程序。鉴于目前尚未有Rust编写的实际驱动程序代码,驱动程序的Rust实现有几种可能性:1.完全使用R
非凸科技 非凸科技
2年前
Rust 等内存安全语言的安全性并不优于C++?
美国国家安全局(NSA)最近发布了一份关于内存安全重要性的网络安全信息表,建议从内存不安全的编程语言(如C/C)转移到内存安全的编程语言(如Rust)。C之父BjarneStroustrup博士表示,“Rust等内存安全语言的安全性并不优于C”
非凸科技 非凸科技
2年前
Rust的安全性和稳健型
Rust是围绕安全性和稳健性而设计的。也就是,安全代码是不使用unsafe关键字的代码,声音代码是不会导致内存损坏或其他未定义行为的代码。“未定义行为”(UB)在C、C和Rust等语言中具有特定含义,不同于“未指定”或“实现定义”行为。Rust最重要的
茧型超类
茧型超类
Lv1
问君能有几多愁?恰似一江春水向东流。
文章
3
粉丝
0
获赞
0