You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

113 lines
6.7 KiB
Markdown

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# 陈天 · Rust 编程第一课
## 618 狂欢 | 课程专属口令
使用口令「**618gogogo**」,立享 7 折优惠
\*此优惠不与会员折扣同享
[![](https://static001.geekbang.org/resource/image/39/c6/39734c773yye3bb66bc5df3db9f528c6.jpg)](https://time.geekbang.org/hybrid/next/pvip/home?canHiddenNavigationBarBackgroundView=3&utm_term=zeus97MRS&utm_source=geektime&utm_medium=rust&utm_campaign=100092901&utm_content=wealbanner)
## 你将获得
* 系统高效的 Rust 学习路径
* 攻克 Rust 编程十大难点
* 即学即练Rust 四大项目实战
* 200+原理图,详解 Rust 设计理念
## 讲师介绍
陈天,现任北美最大的免费流媒体服务 TubiTV 的研发副总裁。他始终致力于高性能系统的研发,活跃在网络协议、网络安全、服务端架构、区块链以及云服务等诸多热门领域,已经积累了 18 年工作经验。
因为始终坚持自己的工作理念——“以合适的工具解决合适的问题”,所以在职业生涯的不同阶段,面对不同的工作需求,他坚持使用形态和机制都不同的开发语言,比如说:
* 用 C 和汇编打造过各种网络协议,维护过在网络安全领域非常知名的嵌入式操作系统 ScreenOS
* 用 Python/JavaScript 撰写过曾经的创业项目途客圈;
* 用 Node.js/Elixir 打造过 TubiTV 高并发的后端核心;
* 用 Elixir 打造过区块链框架 Forge
* 也研究过 Haskell/F#、Clojure/Racket、Swift、Golang 和 C# 等其他语言。
## 课程介绍
Rust 集表达力、高性能、内存安全于一身,在 1.0 版本发布后不久,口碑就一路高飞猛进,从 16 年起,连续 6 年成为 Stack Overflow 用户评选出来的最受喜爱的语言2021/3/15评选结果
近几年,国外很多厂商宣布用 Rust 重写自己的技术栈,国内也有用 Rust 重写后端中间件的趋势。在可预见的未来Rust 或在大多数领域代替 C/C++,甚至 Java/Golang成为开发者的主力语言。
但是Rust 对初学者似乎并不友好,被公认难入门,学习曲线相当陡峭。
比如变量的所有权和生命周期,作为 Rust 的创新概念,是其他编程语言都未涉及的领域。除此之外,不同语言背景,学习也各有难点:
* C 开发者,难点是类型系统和泛型编程;
* C++ 开发者,难点主要在类型系统;
* Python/Ruby/JavaScript 开发者,难点在并发处理、类型系统及泛型编程;
* Golang 开发者,难点在类型系统和泛型编程;
* Java 开发者,难点在异步处理和并发安全的理解上。
该如何跨越这些门槛,不断攀登新高峰呢?
为此,我们邀请到 Rust 专家陈天老师,结合其十八年深度使用多种语言的经验,以先行者的身份输出学习心法,**从新手命令行到项目落地,带你知识与实战两手抓,真正掌握 Rust 的概念本质和设计理念,把 Rust 引入你的技术栈**。
![](https://static001.geekbang.org/resource/image/1c/8d/1cf03ee698cyy875e8fac45b8ed5f88d.jpg)
### 课程模块设计
整个专栏分为五个模块:
**前置知识篇**
回顾软件开发的基础概念:堆、栈、函数、闭包、虚表、泛型、同步和异步等。这是学好任意一门编程语言都要吃透的概念,因为编程语言不过是这些概念的具体表述和载体。
**基础知识篇**
首先通过get hands dirty小项目周感性体验Rust语言的魅力然后回归理性结合第一性原理深入浅出地探讨 Rust 变量的所有权和生命周期,以及对比几种主流的内存管理方式。之后围绕所有权和生命周期,来讨论 Rust 的几大语言特性:函数式编程特性、类型系统、泛型编程以及错误处理。
**进阶篇**
Pascal 之父,图灵奖得主尼古拉斯·沃斯有一个著名的公式:算法+数据结构=程序,想随心所欲地使用 Rust 为你的系统构建数据结构,深度掌握类型系统必不可少。
所以这个模块将重点介绍 trait、trait object、泛型、unsafe rust最后还会讲到 FFI让你用 Rust 为自己的主力语言在关键路径上提供更高的性能,或者引入 Rust 生态中特定的库。
**并发篇**
学会用最合适的工具解决最合适的问题很重要。这个模块将带你从底层的 atomics 一路向上,历经 Mutex、Semaphore、Channel直至 actor model探索不同的并发手段。你会深度了解到其他语言中被奉为圭臬的并发手段在 Rust 里,只不过是一种并发工具。
**实战篇**
单纯掌握语言特性,能应用这些特性写出解决一些小问题的代码,算是初窥门径,就像在游泳池里练习冲浪,想要真正把语言融会贯通,还要靠大风大浪中的磨炼。这个模块会带你学习如何把 Rust 应用在生产环境中,以及如何使用 Rust 的编程思想解决实际问题。
## 课程目录
![](https://static001.geekbang.org/resource/image/7b/1f/7b6f448a4d4de7279a82949332a3c21f.jpg)
## 适合人群
掌握任何一门编程语言即可。
## 特别放送
#### 免费领取福利
[![](https://static001.geekbang.org/resource/image/b1/f8/b16615605494d85de32d2a58c46a0bf8.jpg)](https://time.geekbang.org/article/353474)
#### 限时活动推荐
[![](https://static001.geekbang.org/resource/image/e7/88/e787834ec0927ca4bf8d6eb703c5e188.jpg)](https://time.geekbang.org/activity/promo?page_name=page_37&utm_source=tebiefangsong)
## 订阅须知
1. 订阅成功后推荐通过“极客时间”App端、Web端学习。
2. 本专栏为虚拟商品,交付形式为图文+音频,一经订阅,概不退款。
3. 订阅后分享海报,每邀一位好友订阅有现金返现。
4. 戳此[先充值再购课更划算](https://shop18793264.m.youzan.com/wscgoods/detail/2fmoej9krasag5p?scan=1&activity=none&from=kdt&qr=directgoods_1541158976&shopAutoEnter=1),还有最新课表、超值赠品福利。
5. 企业采购推荐使用“[极客时间企业版](https://b.geekbang.org/?utm_source=geektime&utm_medium=columnintro&utm_campaign=newregister&gk_source=2021020901_gkcolumnintro_newregister)”便捷安排员工学习计划,掌握团队学习仪表盘。
6. 戳此[申请学生认证](https://promo.geekbang.org/activity/student-certificate?utm_source=geektime&utm_medium=caidanlan1)订阅课程享受原价5折优惠。
7. 价格说明:划线价、订阅价为商品或服务的参考价,并非原价,该价格仅供参考。未划线价格为商品或服务的实时标价,具体成交价格根据商品或服务参加优惠活动,或使用优惠券、礼券、赠币等不同情形发生变化,最终实际成交价格以订单结算页价格为准。