TOP
紅利積點抵現金,消費購書更貼心
Rust最佳入門與實戰
滿額折
Rust最佳入門與實戰
Rust最佳入門與實戰
Rust最佳入門與實戰
Rust最佳入門與實戰
Rust最佳入門與實戰
Rust最佳入門與實戰
Rust最佳入門與實戰
Rust最佳入門與實戰
Rust最佳入門與實戰
Rust最佳入門與實戰
Rust最佳入門與實戰
Rust最佳入門與實戰
Rust最佳入門與實戰
Rust最佳入門與實戰
Rust最佳入門與實戰
Rust最佳入門與實戰
Rust最佳入門與實戰
Rust最佳入門與實戰
Rust最佳入門與實戰
Rust最佳入門與實戰
Rust最佳入門與實戰
Rust最佳入門與實戰
Rust最佳入門與實戰
Rust最佳入門與實戰
Rust最佳入門與實戰
Rust最佳入門與實戰
Rust最佳入門與實戰
Rust最佳入門與實戰
Rust最佳入門與實戰
Rust最佳入門與實戰
Rust最佳入門與實戰
Rust最佳入門與實戰
Rust最佳入門與實戰
Rust最佳入門與實戰
Rust最佳入門與實戰

Rust最佳入門與實戰

商品資訊

定價
:NT$ 1000 元
優惠價
90900
庫存:4
下單可得紅利積點 :27 點
商品簡介
作者簡介
目次

商品簡介

★☆★國內第一本介紹Rust實戰的專書★☆★

【本書特點】
☆Rust重要觀念介紹:泛型(Generics)、特徵(Trait)、巨集(Macro)、閉包(Closure)、並行處理(Concurrency)、所有權(Ownership)。
☆Rust實戰:機器學習、WebAssembly、區塊鏈(Blockchain)、跨語言整合(FFI),包括Python、C、JS…等。
☆常見應用實作:資料庫存取、網站開發、桌面程式、檔案系統存取…等。

【本書目標對象】
1. 熟悉C語言的學生或工程師:可學習到最新的程式語言設計理念,改寫或升級舊系統(Legacy system)。
2. 熟悉Python語言的學生或工程師:可學習到如何開發安全與高效能的應用系統。
3. 同時熟悉C與Python語言的學生或工程師:可學習到如何整合Python與Rust,提升系統開發的生產力。
4. 機器學習工程師:可學習如何利用Rust建立高效系統,以提升模型訓練(Training)與推論(Inference)的速度。

作者簡介

陳昭明
★ 曾任職於 IBM、工研院等全球知名企業
★ IT 邦幫忙 2018 年 AI 組【冠軍】
★ 多年 AI 課程講授經驗

前言
Rust 特點
Rust 程式語言受到國際IT 大企業的強力推薦,包括【Google 投百萬美元給Rust基金會,要強化C++ 與Rust 互通性】、【微軟再組新團隊,欲將 C# 代碼改寫為 Rust !】、【Amazon AWS 大量投資Rust 社群,開源Tokio】,Linux 發明人Linus Torvalds 說【Rust will go into Linux 6.1】,為什麼呢? 因為Rust 是一個年輕(2010 年誕生)、有活力(有146,000 個註冊套件)的程式語言,既可以解決傳統C 語言最令人詬病的缺陷,程式動不動就crash,甚至整台電腦當掉,嚴重影響系統維運的穩定性,同時Rust 又擁有現代化程式語言的優點,例如類似Python 的套件管理、物件導向程式設計(OOP)、Function Programming⋯等等,顯然比C++ 更吸引人,同時強調記憶體安全(Memory safety)與高效能(High Performance),也比Python 效能更好,更可以編譯成二進位的執行檔,不必把原始碼交給客戶,因此筆者稱Rust 是現代版的C。
到2024/1/11 為止,Rust 的生態系統已非常完整,套件註冊官網(crate.io)已登錄133,524 個套件,涵蓋各類功能與應用,而且還在快速成長中,生態系統是Python 躍居語言使用率第一名的主要原因,雖然Rust 有些套件的完整性還不如Python,但是規模與涵蓋廣度值得期待。
除了學習Rust 程式語言及許多套件外, 也可以學到【設計典範】(Design patterns),例如,Command Line Applications in Rust 線上書籍就透過一個簡單的應用程式,說明撰寫應用程式應該注意的事項,也提到相對應可立即應用的套件,本書第五章會有詳細解說。另外,還有許多官方線上書籍都有類似的典範說明,例如:Rust By Example、WebAssembly book、Embedded Rust book⋯。

與Python 的整合
撰寫Python 的生產力非常高,往往只要少量的程式碼就可以完成複雜的工作,但是因為Python 屬於動態語言架構,錯誤檢查比較鬆散,因此,執行階段常會發生錯誤,並不適合佈署到正式環境(Production environment),但Python非常適合在開發階段進行研發,例如資料前置處理、資料分析、訓練模型、POC、測試、驗證⋯等,一旦資料與模型備妥,再利用高效能及安全的Rust,開發面對客戶/ 使用者的應用系統,建置成執行檔,佈署到正式環境,兼顧快速與穩健,Rust 與Python 整合並不困難,本書會有許多的案例,與讀者分享。

為何撰寫本書
Rust 也不是沒有缺點,它是筆者學過的近20 種程式語言中最難入門的,主要原因是語法非常多樣化、要理解的設計理念很多、編程規定非常嚴謹,因此,如何找到捷徑輕鬆入門,是非常重要的關鍵,這也是筆者撰寫本書的主要目的,希望能協助讀者快速融會貫通,並開發出安全與高效能的應用系統。

本書主要的特點
Rust 語法非常多樣化,官網的文件也非常豐富,要循序漸進,把每一本線上書籍都看完,應該要花很多時間,讀者及公司老闆應該都沒這個耐性,因此,筆者希望以多年的編程經驗,考量Rust 各項功能對於應用系統開發的重要性,分階段介紹Rust 基本語法、應用實戰、進階設計理念,由淺入深,中間穿插練習與開發小程式,使學習歷程充滿樂趣及挑戰,因此,本書所附的範例程式特別多。
另外,這本書也強調應用,會介紹非常多套件,包括網頁、WebAssembly、桌面程式、機器學習、深度學習、區塊鏈⋯等應用程式開發,希望讀者即學即用,不光是讚嘆Rust 之美,也能立即上手,為個人塑立專業形象,為公司帶來巨大貢獻,講的好像有點Over 了,不過,這也是許多Rustaceans 的夢想吧。
註:Rust developer 暱稱為Rustaceans,Python developer 暱稱為Pythonista。

目標對象
1. 熟悉C 語言的學生或工程師:可學習到最新的程式語言設計理念,改寫或升級舊系統(Legacy system)。
2. 熟悉Python 語言的學生或工程師:可學習到如何開發安全與高效能的應用系統。
3. 同時熟悉C 與Python 語言的學生或工程師:可學習到如何整合Python 與Rust,提升系統開發的生產力。
4. 機器學習工程師:可學習如何利用Rust 建立高效系統,以提升模型訓練(Training)與推論(Inference)的速度。

閱讀重點
◆ 第一篇為 Rust 基礎介紹,含第一 ~ 五章。
◆ 第一章 Rust 入門,介紹 Rust 語言特點、環境建置、套件管理工具(Cargo)及學習資源。
◆ 第 二 章 Rust 火 力 展 示, 預 先 展 示 Rust 與 Python/JavaScript整合,引用OpenCV 套件進行影像處理, 引用Polars 套件進行資料分析(Dataanalysis)、機器學習/ 深度學習及資料庫存取等功能。
◆ 第三章介紹 Rust 基礎的資料型別,學習任何程式語言,都是從變數資料型別及控制流程開始,Rust 也不例外,Rust 資料型別定義非常嚴謹,可以精準定義變數所需的記憶體空間,另外,必須掌握變數所有權才可以掌握記憶體管理。
◆ 第四章介紹 Rust 流程控制,除了一般的分叉(if/else)、迴圈外,也會介紹例外管理機制,這方面與大部分的程式語言(Try/Catch)大相逕庭,需特別注意。
◆ 第五章介紹命令行(CLI)應用程式實作,將之前學習的資料型別與控制流程的知識加以應用,開發一些簡單的命令行(Command Line Interface, CLI)應用程式,藉以熟悉命令行參數解析、多執行緒(Multi-threading)、工作日誌(Logging)、單元測試(Unit testing)及6. 組態管理(configuration management)等程式技巧。
◆ 第二篇為 Rust 進階介紹,含第六 ~ 十一章。
◆ 第六章介紹所有權(Ownership),這是 Rust 語言較難理解的部分,Rust 為了確實做好記憶體管理,必須確實掌握變數的生命週期,才能在生命週期結束時,適時釋放記憶體。
◆ 第七章介紹泛型(Generics),它類似物件導向程式設計(OOP)的【多載】(Overload)、多型(Polymorphism)的概念,一個函數可以適用多種資料型別,不須為每一種型別各寫一個函數,另外,也介紹Rust 內建的泛型資料結構。
◆ 第八章介紹特徵(Trait),Rust 不提供類別(Class),轉而提供 Trait 及結構(Struct)的整合,作為實踐【物件導向程式設計】(OOP)的基礎,這是Rust 程式開發的重要基石。
◆ 第九章介紹巨集(Macro),巨集以特殊的語法形式擴展程式,類似程式產生器,也可以實作成【裝飾器】(Decorator),加註在結構(struct)、枚舉(enum)及函數前面。
◆ 第十章介紹閉包(Closure),Closure 是一種匿名函數,Python 稱為 Lambdafunction,是【函數程式設計】(Function Programming)的關鍵角色。
◆ 第十一章介紹並行處理(Concurrency),包括多個執行緒(Thread)及非同步(Asynchronous)處理,可解決I/O bound 的瓶頸,提升執行效能。
◆ 第三篇 Rust 實戰,介紹開發應用程式常見的檔案系統、資料庫存取與使用者介面,還介紹網站開發、與其他程式語言溝通、資料科學、機器學習及深度學習⋯等,也包括最新的技術如WebAssembly、區塊鏈(Blockchain)、Foreign Function Interface (FFI)。
◆ 第十二章介紹 WebAssembly,簡稱 wasm,是一種新形態的網頁運行方式,它類似Assembly 的低階程式語言,以二進位格式(Binary format)在瀏覽器的JavaScript 虛擬機內運行,執行效能直逼原生程式。
◆ 第十三章介紹各種檔案讀寫方式、資料夾檢視與搜尋與各式資料庫的新增 /查詢/ 更新/ 刪除(CRUD)。
◆ 第十四章介紹資料庫存取,包括關聯式資料庫(Relational database)及NoSQL 資料庫,也包括ORM(Object Relational Mapping)操作。
◆ 第十五章介紹使用者介面(User Interface),包括圖形化使用者介面(Graphic User Interface, GUI)、Web based 的桌面程式及網站開發。
◆ 第十六章介紹 Foreign Function Interface (FFI)規格,透過此規格可與其他程式語言溝通,包括C/C++、Python⋯等。
◆ 第十七章介紹以 Rust 開發機器學習 / 深度學習的方式。
◆ 第十八章介紹區塊鏈(Blockchain),越來越多的系統開發者使用 Rust 撰寫區塊鏈相關程式,我們介紹一個具體而微的區塊鏈程式,包括挖礦及P2P 網路。

本書範例程式碼全部收錄在 https://github.com/mc6666/RUST_Book。

致謝
因個人能力有限,還是有許多議題成為遺珠之憾,仍待後續的努力,過程中要感謝深智出版社的大力支援,使本書得以順利出版,最重要的是要謝謝家人的默默支持。

內容如有疏漏、謬誤或有其他建議,歡迎來信指教(mkclearn@gmail.com)。

目次

第一篇 Rust基礎
第1 章 Rust 入門
1-1 Rust 簡介
1-2 Rust 安裝
1-3 撰寫第一支程式
1-4 使用套件管理工具
1-5 使用VS Code
1-6 程式碼說明
1-7 學習資源
1-8 本章小結
參考資料 (References)
第2 章 Rust 火力展示
2-1 Rust vs. Python 效能比較
2-2 Rust 與Python 整合
2-3 Rust 與JavaScript 整合
2-4 引用OpenCV 套件
2-5 資料分析(Data analysis)
2-6 建構機器學習模型
2-7 進行深度學習辨識
2-8 資料庫存取
2-9 本章小結
參考資料 (References)
第3 章 Rust 資料型別
3-1 變數宣告
3-2 變數值指派
3-3 整數資料型別與運算
3-4 浮點數資料型別與運算
 3-4-1 Normal vs. Subnormal
 3-4-2 無窮大(Infinite) 與遺失值(Missing value)
3-5 布林值資料型別與運算
3-6 文字資料型別與運算
 3-6-1 字元(char)
 3-6-2 字串(String)
 3-6-3 字串切片(slicing)
 3-6-4 字串連接(Concatenation)
 3-6-5 其他字串操作
3-7 參考(Reference) vs. 指標(Pointer)
 3-7-1 參考與指標測試
 3-7-2 智慧指標(Smart pointer)
 3-7-3 Box 智慧指標
 3-7-4 自行解除參考
 3-7-5 Rc 智慧指標
 3-7-6 RefCell 智慧指標
 3-7-7 小結
3-8 複合資料型別
 3-8-1 Tuple
 3-8-2 陣列(Array)
 3-8-3 枚舉型別(Enum)
 3-8-4 結構(Struct)
3-9 特殊資料型別
3-10 各種資料型別轉換
3-11 資料型別別名(Alias)
3-12 本章小結
參考資料 (References)
第4 章 Rust 流程控制
4-1 If/Else
4-2 迴圈
 4-2-1 loop 迴圈
 4-2-2 while 迴圈
 4-2-3 for 迴圈
4-3 例外處理(Exception handling)
 4-3-1 恐慌(Panic)
 4-3-2 可復原的錯誤(Result)
 4-3-3 Result 其他處理方式
 4-3-4 unwrap、expect 與【?】使用時機
 4-3-5 自訂錯誤訊息
 4-3-6 自訂Result Error
 4-3-7 anyhow 套件
 4-3-8 try/catch 套件
 4-3-9 錯誤種類分析
4-4 本章小結
參考資料 (References)
第5 章 命令行(CLI) 應用程式實作
5-1 命令行參數解析
5-2 搜尋檔案內容
5-3 工作日誌(Logging)
5-4 單元測試(Unit testing)
5-5 組態管理(configuration management)
5-6 Head、Tail 程式開發
5-7 本章小結
參考資料 (References)

第二篇 Rust 進階
第6 章 所有權(Ownership)
6-1 所有權管理
6-2 參考與借用(References and Borrowing)
6-3 生命週期(Lifetime)
6-4 多執行緒的所有權管理
6-5 本章小結
參考資料 (References)
第7 章 泛型(Generics)
7-1 泛型入門
7-2 Vec
7-3 HashMap
7-4 Result 泛型
7-5 Option 泛型
7-6 泛型函數
7-7 泛型結構
7-8 泛型枚舉
7-9 泛型方法
7-10 本章小結
參考資料 (References)
第8 章 特徵(Trait)
8-1 Trait 入門
8-2 Trait bound
8-3 繼承(Inheritance)
8-4 Trait Object
8-5 本章小結
參考資料 (References)
第9 章 巨集(Macro)
9-1 巨集(Macro) 入門
9-2 巨集開發
9-3 以巨集生成函數
9-4 客製化衍生巨集(Custom derive macro)
9-5 屬性巨集與函數巨集
9-6 領域特定語言(Domain-specific languages, DSL)
9-7 本章小結
參考資料 (References)
第10 章 閉包(Closure)
10-1 Closure 概念
10-2 Closure 入門
10-3 Closure 應用
10-4 高階函數(Higher Order Functions, HOF)
10-5 本章小結
參考資料 (References)
第11 章 並行處理(Concurrency)
11-1 多執行緒(Multi-thread)
11-2 執行緒訊息傳遞
11-3 執行緒狀態共享
11-4 多執行緒實戰
11-5 非同步(Asynchronous)
11-6 非同步應用-- 股價資料爬蟲
11-7 Tokio 套件
11-8 本章小結
參考資料 (References)

第三篇 Rust 實戰
第12 章 WebAssembly
12-1 WebAssembly 入門
12-2 WebAssembly 實戰
12-3 本章小結
參考資料 (References)
第13 章 檔案系統
13-1 檔案存取
13-2 檔案系統操作
13-3 檔案總管(File explorer)
13-4 本章小結
參考資料 (References)
第14 章 資料庫存取
14-1 關聯式資料庫存取
14-2 以原生驅動程式存取資料庫
14-3 以ODBC 存取資料庫
14-4 以ORM 存取資料庫
14-5 Diesel ORM
 14-5-1 安裝PostgreSQL
 14-5-2 Diesel 安裝
 14-5-3 Diesel 專案測試
14-6 SeaORM
14-7 NoSQL 資料庫
14-8 本章小結
參考資料 (References)
第15 章 使用者介面(User Interface)
15-1 Windows API
15-2 Native Windows GUI
15-3 跨平台GUI
15-4 iced 框架
15-5 CXX-Qt 框架
15-6 Web based 桌面程式
 15-6-1 Tauri 程式安裝
 15-6-2 Tauri 程式開發
 15-6-3 Tauri 程式除錯與佈署
15-7 網站開發
 15-7-1 Hyper 套件
 15-7-2 Actix Web 套件
 15-7-3 完整網站開發範例
15-8 本章小結
參考資料 (References)
第16 章 與其他程式語言溝通
16-1 與C/C++ 程式語言溝通
 16-1-1 Rust 呼叫C/C++
 16-1-2 C/C++ 呼叫Rust
16-2 與C# 程式語言溝通
16-3 與Python 程式語言溝通
16-4 本章小結
參考資料 (References)
第17 章 深度學習(Deep learning)
17-1 深度學習基本概念
17-2 機器學習相關套件
17-3 資料科學基礎套件
17-4 深度學習套件
 17-4-1 tch-rs 套件
 17-4-2 Candle 套件
17-5 本章小結
參考資料 (References)
第18 章 區塊鏈(Blockchain)
18-1 區塊鏈基本概念
18-2 區塊鏈實作
18-3 本章小結
參考資料 (References)

購物須知

為了保護您的權益,「三民網路書店」提供會員七日商品鑑賞期(收到商品為起始日)。

若要辦理退貨,請在商品鑑賞期內寄回,且商品必須是全新狀態與完整包裝(商品、附件、發票、隨貨贈品等)否則恕不接受退貨。

優惠價:90 900
庫存:4

暢銷榜

客服中心

收藏

會員專區