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 引入你的技術棧
。
課程模組設計
整個專欄分為五個模組:
前置知識篇
回顧軟體開發的基礎概念:堆、棧、函式、閉包、虛表、泛型、同步和異步等。這是學好任意一門程式語言都要吃透的概念,因為程式語言不過是這些概念的具體表述和載體。
基礎知識篇
首先透過 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 的編程思想解決實際問題。
課程目錄
適合人群
掌握任何一門程式語言
了解 Rust 基礎語法