當前位置: 妍妍網 > 碼農

實戰驅動,快速上手 Rust

2024-07-24碼農

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 基礎語法