庫存狀況
「香港二樓書店」讓您 愛上二樓●愛上書
我的購物車 加入會員 會員中心 常見問題 首頁
「香港二樓書店」邁向第一華人書店
登入 客戶評價 whatsapp 常見問題 加入會員 會員專區 現貨書籍 現貨書籍 購物流程 運費計算 我的購物車 聯絡我們 返回首頁
香港二樓書店 > 今日好書推介
二樓書籍分類
 
Rust最佳入門與實戰

Rust最佳入門與實戰

沒有庫存
訂購需時10-14天
9786267383957
陳昭明
深智數位
2024年8月19日
333.00  元
HK$ 283.05  






ISBN:9786267383957
  • 規格:平裝 / 624頁 / 17 x 23 x 3.06 cm / 普通級 / 單色印刷 / 初版
  • 出版地:台灣


  • 電腦資訊 > 程式設計 > 其他

















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



      【本書目標對象】

      1. 熟悉C語言的學生或工程師:可學習到最新的程式語言設計理念,改寫或升級舊系統(Legacy system)。

      2. 熟悉Python語言的學生或工程師:可學習到如何開發安全與高效能的應用系統。

      3. 同時熟悉C與Python語言的學生或工程師:可學習到如何整合Python與Rust,提升系統開發的生產力。

      4. 機器學習工程師:可學習如何利用Rust建立高效系統,以提升模型訓練(Training)與推論(Inference)的速度。



    本書特色



      ☆Rust重要觀念介紹:泛型(Generics)、特徵(Trait)、巨集(Macro)、閉包(Closure)、並行處理(Concurrency)、所有權(Ownership)。

      ☆Rust實戰:機器學習、WebAssembly、區塊鏈(Blockchain)、跨語言整合(FFI),包括Python、C、JS…等。

      ☆常見應用實作:資料庫存取、網站開發、桌面程式、檔案系統存取…等。

    ?


     





    第一篇 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)



    ?





    前言



      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 網路。



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



      致謝



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



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




    其 他 著 作
    1. Rust 最佳入門與實戰
    2. 深度學習 最佳入門邁向AI專題實戰(二版)
    3. ChatGPT完整解析:API實測與企業應用實戰
    4. Scikit-learn 詳解與企業應用:機器學習最佳入門與實戰
    5. Scikit-learn 詳解與企業應用:機器學習最佳入門與實戰
    6. 開發者傳授PyTorch秘笈
    7. 深度學習 最佳入門邁向AI專題實戰
    8. 實用經絡針灸大全