Golang 与 Rust 结合,一定会有光明的未来

polarisxu

共 2824字,需浏览 6分钟

 ·

2021-11-05 15:11


最近看到一个 9 月程序员工资排行的图,435501份数据,调查显示:Rust 是最赚钱的!


随着 Rust 的发展和一些 Gopher 关注 Rust,它也表现出了很多优点。


首先 Rust 没有历史包袱,采百家之长。从语言的内核看, Rust 重塑了对基本概念的理解。比如它清晰地定义了变量的生命周期,不仅摒弃 GC 这样的内存和性能杀手,还不用关心手动内存管理,让内存安全和高性能兼得。

 

其次,从语言的外观来看,它用起来很像 Python/TypeScript 这样的高级语言,表达能力一流,但性能丝毫不输于 C/C++,表达力和高性能二者兼得


可以说,掌握了 Rust,就相当于掌握了很多其他语言的精髓;把 Rust 引入你的技术栈,也让自己职业生涯多一门面向未来的利器。


国内外不少知名互联网或科技公司,都在采用 Rust 重构技术栈,比如字节的飞书、Google 的 Fuchsia 等,清华大学也开始让本科生学习 Rust 而不是 C/C++。


用起来就有多香,学起来就有多难。Rust 也是公认的难入门,学习曲线很陡峭。

 

除了普遍觉得不好学的所有权和生命周期以外,不同语言背景还会有不同的难点:

  • Golang 开发者,难点在类型系统和泛型编程;
  • C 开发者,难点是类型系统和泛型编程;
  • C++ 开发者,难点主要在类型系统;
  • Python/Ruby/JavaScript 开发者,难点在并发处理、类型系统及泛型编程;
  • Java 开发者,难点在异步处理和并发安全的理解上;

而且说真的,中文的 Rust 资料不多,不适合入门,也不系统,比较有名的是张汉东的《Rust 编程之道》,难度系数比较大,我啃得也很艰难。后来看到和张汉东一起研究 Rust 的另一位大佬「陈天」,很早就关注了他的知乎,看过不少他分享的 Rust 的入门难点解读,讲得很透。
 
不久前他在极客时间写了个专栏《陈天 · Rust 编程第一课》,我第一时间就订阅了。不得不说,这课可谓全网最好的 Rust 入门教程,没有之一!

专栏结合了陈天 18 年深度使用多种语言的经验,以先行者的身份输出了一份「Rust 学习路径图」,看下面:
 
 
整个专栏由浅入深,对比多种语言,带你攻克 Rust 编程 10 大难点,有 100+ 原理图,详解 Rust 设计理念。最后通过 4 个项目实操训练,理论与实战两手抓,真正让你掌握 Rust 开发精髓。

拼团 + 口令「Rust66666 」立省 40 元
到手仅 ¥89,新人首单仅 ¥59

 

再说说作者「陈天」


陈天,现任北美最大的免费流媒体服务TubiTV 的研发副总裁,18 年始终致力于高性能系统的研发工作。
 
经验丰富,涵盖网络协议、网络安全、服务端架构、区块链以及云服务等诸多热门领域,他一直主张“以合适的工具解决合适的问题”,所以,当面对不同的工作需求,他坚持深度使用形态和机理都大相径庭的开发语言。
 
  • 用 C 和汇编打造过各种网络协议,维护过嵌入式操作系统 ScreenOS;
  • 用 Python/Javascript 撰写过途客圈;
  • 用 Node.js/Elixir 打造过 TubiTV 高并发的后端核心;
  • 用 Elixir 打造过区块链框架 Forge;
  • 也研究过 Haskell/F#、Clojure/Racket、Swift、Golang 和 C#等其他语言。
 
可以说,他对各个语言都了如指掌,这种资历的大佬能出来开课,把自己独特的 Rust 学习方法和经验共享出来,真的很难得。


Rust 高效学习路径


有一点不得不提,承担着「Rust 第一课」的使命,陈天讲得通俗易懂,把各个知识点类比到不同的语言中,设计了很多小而美的示例代码,引入 Rust 标准库的源代码进行分析,并且还精心绘制了大量的原理图。每一讲都遵循「表层知识 → 解读源码 → 底层设计」的思路力求帮你理解 Rust 繁多概念背后的设计逻辑。
 
具体来看,整个专栏分成 5 个模块:
 
1.前置知识篇 

回顾软件开发的基础概念:堆、栈、函数、闭包、泛型、同步和异步等。这些是学好任意一门编程语言都要吃透的概念,因为编程语言不过是这些概念的具体表述和载体。

 
2.基础知识篇

深入浅出地探讨 Rust 变量的所有权和生命周期,对比几种主流的内存管理方式,包括 C 的手工管理、Java 的 GC、Swift 的 ARC 和 Rust 的独特方案。之后围绕所有权和生命周期,来讨论 Rust 的几大语言特性:函数式编程特性、类型系统、泛型编程以及错误处理。

 
3.进阶篇

Pascal 之父,图灵奖得主尼古拉斯·沃斯有一个著名的公式:算法 + 数据结构 = 程序,想随心所欲地使用 Rust 构建数据结构,深度掌握类型系统必不可少。所以将重点介绍 Trait、Trait Object、泛型、Unsafe Rust、 FFI,用 Rust 为自己的主力语言在关键路径上提供更高性能。

 
4.并发篇

学会用最合适的工具解决最合适的问题很重要。这个模块将带你从底层的 atomics 一路向上,历经 Mutex、Semaphore、Channel,直至 actor model,探索不同的并发手段。你会深度了解到,其他语言中被奉为圭臬的并发手段,在 Rust 里,只不过是一种并发工具。

 
5.实战篇

单纯掌握语言特性,能写出解决一些小问题的代码,就像在游泳池里练习冲浪,算是初窥门径;想要真正把语言融会贯通,还要靠大风大浪中的磨炼。这个模块会带你学习如何把 Rust 应用在生产环境中,以及如何用 Rust 解决实际问题。


刚上线的时候是 40 讲,老师边写边延展内容,现在已经 52 讲了。这种单纯的分享精神,也是很走心了。看看目录吧:


可以说,这真是一个看过都说好的课,截了一些评价供你参考:


再强调一点
限时拼团 + 口令「Rust66666」
到手 ¥89,立省 ¥40
如果你是新人,只需 ¥59


今日订阅,还可免费加入「陈天老师的 Rust 交流群」,据小道消息得知群里很多 Gopher 已经在学 Rust 啦
 

最后分享一句话:学 Rust 并不会给你带来智商上的优越感,但或许会让你重新爱上编程。

点击「阅读原文」,掌握“Rust 开发" 这个大技能。
浏览 158
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报