彷徨C 十幾年,終于盯上 Rust
時間:2021-09-03 10:08:22
手機看文章
掃描二維碼
隨時隨地手機看文章
[導(dǎo)讀]C開發(fā)究竟需不需要學(xué)點Rust?個人認為:需要!早就是優(yōu)勢!多年以前,后端還是Java和C的天下呢!那時好多人都說Go的生態(tài)不好,它作為后端主要語言還有很長一段距離。然而,看看現(xiàn)在,多數(shù)做后端開發(fā)的人都轉(zhuǎn)到Go去了。貌似現(xiàn)在的Rust和當(dāng)年的Go有點類似的味道?對于Rust這個新...
C 開發(fā)究竟需不需要學(xué)點Rust?個人認為:需要!早就是優(yōu)勢!多年以前,后端還是Java和C 的天下呢!那時好多人都說Go的生態(tài)不好,它作為后端主要語言還有很長一段距離。然而,看看現(xiàn)在,多數(shù)做后端開發(fā)的人都轉(zhuǎn)到Go去了。貌似現(xiàn)在的Rust和當(dāng)年的Go有點類似的味道?對于 Rust 這個新語言,很多人可能都聽過,但是沒用過。實際上,早從 16 年起,Rust 已經(jīng)連續(xù)六年霸榜,被 Stack Overflow 評選為最受開發(fā)者喜愛的語言。?當(dāng)然,它優(yōu)點確實很多。不夸張地說,用過 Rust 的人都說各種好。?首先 Rust 沒有歷史包袱,采百家之長。從語言的內(nèi)核看, Rust 重塑了對基本概念的理解。比如它清晰地定義了變量的生命周期,不僅摒棄GC這樣的內(nèi)存和性能殺手,還不用關(guān)心手動內(nèi)存管理,讓內(nèi)存安全和高性能兼得。?其次,從語言的外觀來看,它用起來很像 Python/TypeScript 這樣的高級語言,表達能力一流,但性能絲毫不輸于 C/C ,表達力和高性能二者兼得。?所以,集表達力、高性能、內(nèi)存安全于一身的 Rust ,在很多場景里都能大施拳腳。除了在傳統(tǒng)的系統(tǒng)開發(fā)領(lǐng)域,如操作系統(tǒng)、設(shè)備驅(qū)動、嵌入式等方向高歌猛進之外,Rust 還在服務(wù)端高性能、高并發(fā)場景遍地開花。?Rust 的應(yīng)用面?
國內(nèi)外不少知名互聯(lián)網(wǎng)或科技公司,都在采用 Rust 重構(gòu)技術(shù)棧,比如字節(jié)的飛書、Google 的 Fuchsia 等,清華大學(xué)也開始讓本科生學(xué)習(xí) Rust 而不是 C/C 。在可預(yù)見的未來,Rust 或在大多數(shù)領(lǐng)域代替 C/C ,成為開發(fā)者的主力語言。?用起來就有多香,學(xué)起來就有多難。Rust 也是公認的難入門,學(xué)習(xí)曲線很陡峭。?除了普遍覺得不好學(xué)的所有權(quán)和生命周期以外,不同語言背景還會有不同的難點:
?而且說真的,中文的 Rust 資料不多,不適合入門,也不系統(tǒng),比較有名的是張漢東的《Rust編程之道》,難度系數(shù)比較大,我啃得也很艱難。后來看到和張漢東一起研究 Rust 的另一位大佬「陳天」,很早就關(guān)注了他的知乎,看過不少他分享的 Rust 的入門難點解讀,講得很透。?最近聽說他在極客時間寫了個專欄《陳天 · Rust 編程第一課》,第一時間就去訂閱了,看了目錄和更新的幾篇,果然驚喜,真的做到了深入淺出。陳天結(jié)合了他 18 年深度使用多種語言的經(jīng)驗,以先行者的身份輸出了一份「Rust 學(xué)習(xí)路徑圖」,分享給你。??
整個專欄由淺入深,對比多種語言,帶你攻克 Rust 編程 10 大難點,有 100 原理圖,詳解 Rust 設(shè)計理念。最后通過 4 個項目實操訓(xùn)練,理論與實戰(zhàn)兩手抓,真正讓你掌握 Rust 開發(fā)精髓。
早鳥 ?口令「Rust66666 」立省?40?元到手僅 ¥89,新人首單僅 ¥59.9?Rust 吸收了很多語言的優(yōu)秀特性,所以,不論你是從 OOP 還是 FP 轉(zhuǎn)向 Rust,都能看到優(yōu)秀編程語言的影子??梢哉f,掌握了 Rust,就相當(dāng)于掌握了很多其他語言的精髓;把 Rust 引入你的技術(shù)棧,也讓自己職業(yè)生涯多一門面向未來的利器。?
陳天,現(xiàn)任北美最大的免費流媒體服務(wù)TubiTV 的研發(fā)副總裁,18 年始終致力于高性能系統(tǒng)的研發(fā)工作。?經(jīng)驗豐富,涵蓋網(wǎng)絡(luò)協(xié)議、網(wǎng)絡(luò)安全、服務(wù)端架構(gòu)、區(qū)塊鏈以及云服務(wù)等諸多熱門領(lǐng)域,他一直主張“以合適的工具解決合適的問題”,所以,當(dāng)面對不同的工作需求,他堅持深度使用形態(tài)和機理都大相徑庭的開發(fā)語言。
可以說,他對各個語言都了如指掌,這種資歷的大佬能來開課,把自己獨特的 Rust 學(xué)習(xí)方法和經(jīng)驗共享出來,真的很難得。?
有一點不得不提,承擔(dān)著「Rust 第一課」的使命,陳天講得通俗易懂,把各個知識點類比到不同的語言中,每一講都遵循「表層知識 → 解讀源碼 → 底層設(shè)計」的思路,力求幫你理解 Rust 繁多概念背后的設(shè)計邏輯。?具體來看,整個專欄分成 5 個模塊:?1.前置知識篇?回顧軟件開發(fā)的基礎(chǔ)概念:堆、棧、函數(shù)、閉包、泛型、同步和異步等。這些是學(xué)好任意一門編程語言都要吃透的概念,因為編程語言不過是這些概念的具體表述和載體。
2.基礎(chǔ)知識篇深入淺出地探討 Rust 變量的所有權(quán)和生命周期,對比幾種主流的內(nèi)存管理方式,包括 C 的手工管理、Java 的 GC、Swift 的 ARC 和 Rust 的獨特方案。之后圍繞所有權(quán)和生命周期,來討論 Rust 的幾大語言特性:函數(shù)式編程特性、類型系統(tǒng)、泛型編程以及錯誤處理。
3.進階篇Pascal 之父,圖靈獎得主尼古拉斯·沃斯有一個著名的公式:算法 數(shù)據(jù)結(jié)構(gòu) = 程序,想隨心所欲地使用 Rust 構(gòu)建數(shù)據(jù)結(jié)構(gòu),深度掌握類型系統(tǒng)必不可少。所以將重點介紹 Trait、Trait Object、泛型、Unsafe Rust、 FFI,用 Rust 為自己的主力語言在關(guān)鍵路徑上提供更高性能。?4.并發(fā)篇學(xué)會用最合適的工具解決最合適的問題很重要。這個模塊將帶你從底層的 atomics 一路向上,歷經(jīng) Mutex、Semaphore、Channel,直至 actor model,探索不同的并發(fā)手段。你會深度了解到,其他語言中被奉為圭臬的并發(fā)手段,在 Rust 里,只不過是一種并發(fā)工具。
?5.實戰(zhàn)篇單純掌握語言特性,能寫出解決一些小問題的代碼,就像在游泳池里練習(xí)沖浪,算是初窺門徑;想要真正把語言融會貫通,還要靠大風(fēng)大浪中的磨煉。這個模塊會帶你學(xué)習(xí)如何把 Rust 應(yīng)用在生產(chǎn)環(huán)境中,以及如何用 Rust 解決實際問題。
有多干貨,來看看目錄吧。
再強調(diào)一點專欄剛上線早鳥 ?口令「Rust66666」到手 ¥89,立省 ¥40如果你是新人,只需 ¥59.9
今日訂閱,可加入「陳天老師的 Rust 交流群」?點擊「閱讀原文」,只要 89 元,掌握“Rust 開發(fā)" 這個大技能,不虧。
國內(nèi)外不少知名互聯(lián)網(wǎng)或科技公司,都在采用 Rust 重構(gòu)技術(shù)棧,比如字節(jié)的飛書、Google 的 Fuchsia 等,清華大學(xué)也開始讓本科生學(xué)習(xí) Rust 而不是 C/C 。在可預(yù)見的未來,Rust 或在大多數(shù)領(lǐng)域代替 C/C ,成為開發(fā)者的主力語言。?用起來就有多香,學(xué)起來就有多難。Rust 也是公認的難入門,學(xué)習(xí)曲線很陡峭。?除了普遍覺得不好學(xué)的所有權(quán)和生命周期以外,不同語言背景還會有不同的難點:
- C 開發(fā)者,難點是類型系統(tǒng)和泛型編程;
- C 開發(fā)者,難點主要在類型系統(tǒng);
- Python/Ruby/JavaScript 開發(fā)者,難點在并發(fā)處理、類型系統(tǒng)及泛型編程;
- Java 開發(fā)者,難點在異步處理和并發(fā)安全的理解上;
?而且說真的,中文的 Rust 資料不多,不適合入門,也不系統(tǒng),比較有名的是張漢東的《Rust編程之道》,難度系數(shù)比較大,我啃得也很艱難。后來看到和張漢東一起研究 Rust 的另一位大佬「陳天」,很早就關(guān)注了他的知乎,看過不少他分享的 Rust 的入門難點解讀,講得很透。?最近聽說他在極客時間寫了個專欄《陳天 · Rust 編程第一課》,第一時間就去訂閱了,看了目錄和更新的幾篇,果然驚喜,真的做到了深入淺出。陳天結(jié)合了他 18 年深度使用多種語言的經(jīng)驗,以先行者的身份輸出了一份「Rust 學(xué)習(xí)路徑圖」,分享給你。??
整個專欄由淺入深,對比多種語言,帶你攻克 Rust 編程 10 大難點,有 100 原理圖,詳解 Rust 設(shè)計理念。最后通過 4 個項目實操訓(xùn)練,理論與實戰(zhàn)兩手抓,真正讓你掌握 Rust 開發(fā)精髓。
早鳥 ?口令「Rust66666 」立省?40?元到手僅 ¥89,新人首單僅 ¥59.9?Rust 吸收了很多語言的優(yōu)秀特性,所以,不論你是從 OOP 還是 FP 轉(zhuǎn)向 Rust,都能看到優(yōu)秀編程語言的影子??梢哉f,掌握了 Rust,就相當(dāng)于掌握了很多其他語言的精髓;把 Rust 引入你的技術(shù)棧,也讓自己職業(yè)生涯多一門面向未來的利器。?
再說說作者「陳天」
陳天,現(xiàn)任北美最大的免費流媒體服務(wù)TubiTV 的研發(fā)副總裁,18 年始終致力于高性能系統(tǒng)的研發(fā)工作。?經(jīng)驗豐富,涵蓋網(wǎng)絡(luò)協(xié)議、網(wǎng)絡(luò)安全、服務(wù)端架構(gòu)、區(qū)塊鏈以及云服務(wù)等諸多熱門領(lǐng)域,他一直主張“以合適的工具解決合適的問題”,所以,當(dāng)面對不同的工作需求,他堅持深度使用形態(tài)和機理都大相徑庭的開發(fā)語言。
- 用 C 和匯編打造過各種網(wǎng)絡(luò)協(xié)議,維護過在網(wǎng)絡(luò)安全領(lǐng)域非常知名的嵌入式操作系統(tǒng) ScreenOS;
- 用 Python/Javascript 撰寫過曾經(jīng)的創(chuàng)業(yè)項目途客圈;
- 用 Node.js/Elixir 打造過 TubiTV 高并發(fā)的后端核心;
- 用 Elixir 打造過區(qū)塊鏈框架 Forge;
- 也研究過 Haskell/F#、Clojure/Racket、Swift、Golang 和 C#等其他語言。
可以說,他對各個語言都了如指掌,這種資歷的大佬能來開課,把自己獨特的 Rust 學(xué)習(xí)方法和經(jīng)驗共享出來,真的很難得。?
Rust?高效學(xué)習(xí)路徑
有一點不得不提,承擔(dān)著「Rust 第一課」的使命,陳天講得通俗易懂,把各個知識點類比到不同的語言中,每一講都遵循「表層知識 → 解讀源碼 → 底層設(shè)計」的思路,力求幫你理解 Rust 繁多概念背后的設(shè)計邏輯。?具體來看,整個專欄分成 5 個模塊:?1.前置知識篇?回顧軟件開發(fā)的基礎(chǔ)概念:堆、棧、函數(shù)、閉包、泛型、同步和異步等。這些是學(xué)好任意一門編程語言都要吃透的概念,因為編程語言不過是這些概念的具體表述和載體。
2.基礎(chǔ)知識篇深入淺出地探討 Rust 變量的所有權(quán)和生命周期,對比幾種主流的內(nèi)存管理方式,包括 C 的手工管理、Java 的 GC、Swift 的 ARC 和 Rust 的獨特方案。之后圍繞所有權(quán)和生命周期,來討論 Rust 的幾大語言特性:函數(shù)式編程特性、類型系統(tǒng)、泛型編程以及錯誤處理。
3.進階篇Pascal 之父,圖靈獎得主尼古拉斯·沃斯有一個著名的公式:算法 數(shù)據(jù)結(jié)構(gòu) = 程序,想隨心所欲地使用 Rust 構(gòu)建數(shù)據(jù)結(jié)構(gòu),深度掌握類型系統(tǒng)必不可少。所以將重點介紹 Trait、Trait Object、泛型、Unsafe Rust、 FFI,用 Rust 為自己的主力語言在關(guān)鍵路徑上提供更高性能。?4.并發(fā)篇學(xué)會用最合適的工具解決最合適的問題很重要。這個模塊將帶你從底層的 atomics 一路向上,歷經(jīng) Mutex、Semaphore、Channel,直至 actor model,探索不同的并發(fā)手段。你會深度了解到,其他語言中被奉為圭臬的并發(fā)手段,在 Rust 里,只不過是一種并發(fā)工具。
?5.實戰(zhàn)篇單純掌握語言特性,能寫出解決一些小問題的代碼,就像在游泳池里練習(xí)沖浪,算是初窺門徑;想要真正把語言融會貫通,還要靠大風(fēng)大浪中的磨煉。這個模塊會帶你學(xué)習(xí)如何把 Rust 應(yīng)用在生產(chǎn)環(huán)境中,以及如何用 Rust 解決實際問題。
有多干貨,來看看目錄吧。
再強調(diào)一點專欄剛上線早鳥 ?口令「Rust66666」到手 ¥89,立省 ¥40如果你是新人,只需 ¥59.9
今日訂閱,可加入「陳天老師的 Rust 交流群」?點擊「閱讀原文」,只要 89 元,掌握“Rust 開發(fā)" 這個大技能,不虧。