Course Code:
rustli
Duration:
21 hours
Course Outline:
課程介紹:
Rust是一種現代系統級編程語言,以其內存安全性、並發性和性能而聞名。本課程將向學員系統講解Rust的核心語法及重點概念,通過“理論 + 實戰”的方式幫助學員對Rust有深入的理解,最終能熟練使用這門語言開發各種複雜項目。。
學時:
3天,共計21小時(每日含1小時休息)
課程安排:
第一天:
Rust語言基礎
- Rust語言概述
- 詞法結構
- 面向表達式
- 數據類型
- 函數與閉包
- 模式匹配
- 智能指針
- 字符與字符串
- 集合容器
- 叠代器
- Rust模塊
- Cargo包管理器
- 實際項目的組織結構
- 定義自己的Crate
Cargo及crates.io
- 使用發布配置來定制構建
- 將包發布到crates.io上
- 編寫有用的文檔注釋
- 使用pub use來導出合適的公共API
- 創建crates.io賬戶
- 爲包添加元數據
- 發布到crates.io
- 發布已有包的新版本
- 使用cargo yank命令從cargo.io上移除版本
- Cargo工作空間
- 創建工作空間
- 使用cargo install從crates.io上安裝可執行程序
Rust語言核心概念
- Rust語言架構
- 所有權:內存管理基礎知識
- 所有權:安全管理之內存安全
- 所有權:Copy語義和Copy trait
- 所有權:深入理解Move語義
- 所有權:Move與析構
深入理解生命周期
- 完全理解Scope和NLL
- 深入理解生命周期和生命周期參數
- 深入理解生命周期參數Early bound
- 借用檢查:深入理解生命周期參數Tvs&T
- 深入理解生命周期參數: trait對象的生命周期參數
- 深入理解生命周期參數:高階生命周期
線程與並發
- 理解線程與並發
- 線程間安全共享數據
- 構建並發系統
- 無鎖並發
第二天
trait與泛型
- trait靜態分發
- 認識trait對象
- 泛型和trait實現模板方法
- trait對象本質
- 對象安全本質
- 利用Enum代替trait對象
- trait覆蓋實現的一個解決方案
- trait對象與Sized
- trait對象與Box Self
- 編程範式:Rust語言編程範式
Rust的面向對象編程特性
- 面向對象語言的特性
- 對象包含數據和行爲
- 封裝實現細節
- 作爲類型系統和代碼共享機制的繼承
- 使用trait對象來存儲不同類型的值
- 爲共有行爲定義一個trait
- 實現trait
- trait對象會執行動態派發
- trait對象必須保證對象安全
- 案例:實現面向對象的設計模式
Rust錯誤處理概要
- Rust錯誤處理:Option
- Rust錯誤處理:Result
- Rust錯誤處理:try
- Rust錯誤處理:Panic
Rust元編程之反射
- Rust元編程之反射的兩種應用思路
- Rust元編程之編譯過程與宏展開概述
Rust元編程之聲明宏
- 三件套介紹
- Bang宏實現原理
- 使用配置文件動態生成代碼
- Derive宏案例
- 屬性宏
深入理解Unsafe Rust
- Unsafe Rust安全抽象概述
- Unsafe Rust安全抽象:Drop檢查
- Unsafe Rust安全抽象:型變
- UnsafeRust的其他知識點
第三天
Rust異步編程基礎
- Rust異步編程之IO模型
- epoll和io_uring
- 事件驅動編程模型
- epoll代碼實踐
- Reactor代碼實踐
- MiniMio代碼實踐
- Mio代碼實踐
- 異步編程模型概要
- Future和Futures-rs介紹
- 編寫異步echo服務
- 深入理解異步Task模型
- Waker實現
- Futures庫源碼分析
- async-await語法
- 生成器
- Pin與Unpin
- no-std異步生態介紹
- 實現異步緩存
- 異步運行時生態介紹
- smol運行時
- async-std運行時
- tokio運行時
構建異步Web框架
- Rust異步Web框架概述
- Rust異步Web框架--Rocket
- Rust異步Web框架--tide
- Rust異步Web框架--actix-web
- Rust異步Web框架--gotham-and-thruster
- Rust異步Web框架--tower
- Rust異步Web框架--hyper
- Rust異步Web框架--warp
Web框架實戰之HTTP庫實戰
- Web框架實戰之了解hyper-tower_http-http-body之間的層次關系
- Web框架實戰之創建初始項目
- Web框架實戰之設計框架接口
- Web框架實戰之實現路由結構
- Web 框架實戰之實現 Handler
- Web 框架實戰之添加 tracing 打印
- Web 框架實戰之實現提取器
- Web 框架實戰之實現提取器和中間件
- Web 框架實戰之錯誤處理支持
編寫自動化測試
- 如何編寫測試
- 測試函數的構成
- 使用assert!宏檢查結果
- 使用assert_eq!宏和assert_ne!宏判斷相等性
- 添加自定義的錯誤提示信息
- 使用should_panic檢查panic
- 使用Result<T, E>編寫測試
- 控制測試的運行方式
- 並行或串行地進行測試
- 顯示函數輸出
- 只運行部分特定名稱的測試
- 通過顯式指定來忽略某些測試
- 測試的組織結構
- 單元測試
- 集成測試