書名: WebAssembly實戰作者名: (加拿大)C.杰勒德·加倫特本章字數: 1685字更新時間: 2021-05-12 10:20:17
關于本書
本書旨在讓你了解什么是WebAssembly、它的工作原理,以及用它能夠做什么、不能做什么。你將了解如何根據需要創建WebAssembly模塊。本書將從簡單示例開始,然后逐步深入高級主題,如動態鏈接、并行處理以及調試。
目標讀者
本書的目標讀者是對C或C++、JavaScript和HTML有基本理解的開發者。盡管互聯網上有在線的WebAssembly資源,但其中一些已經過時,而且通常并未深入細節或涉及高級主題。本書將以易于學習的形式呈現各種信息,初學者和專家開發者都可以從中受益,從而創建WebAssembly模塊并與之交互。
內容結構
本書共有13章,分為4個部分。
第一部分解釋了WebAssembly是什么及其工作原理。這一部分也介紹了Emscripten工具包,全書都將用其來創建WebAssembly模塊。
● 第1章討論了WebAssembly是什么、它能解決什么問題,以及它的工作原理,解釋了WebAssembly的安全性來源、可用于創建WebAssembly模塊的語言,以及使用這些模塊的場合。
● 第2章闡釋了WebAssembly模塊的組織結構,以及模塊每一部分的職責。
● 第3章介紹了Emscripten工具包,講解了創建WebAssembly模塊時可用的不同輸出選項,還介紹了WebAssembly JavaScript API。
第二部分帶領你創建一個WebAssembly模塊并在Web瀏覽器中與之交互。
● 第4章講解了如何調整已有的C或C++代碼庫,使其也可以編譯為WebAssembly模塊。你還將學習為網頁編寫JavaScript代碼,從而與這個模塊交互。
● 第5章講解了如何調整第4章中創建的代碼,使得這個WebAssembly模塊可以調用網頁的JavaScript代碼。
● 第6章帶領你修改WebAssembly模塊,讓它可以兼容從JavaScript代碼傳入的函數指針。這允許JavaScript代碼按需指定函數,并使用JavaScript promise。
第三部分介紹了幾個高級主題,如動態鏈接、并行處理,以及如何在非Web瀏覽器環境中操作WebAssembly模塊。
● 第7章介紹了動態鏈接的基礎知識。兩個或多個WebAssembly模塊可以在運行時通過動態鏈接合而為一。
● 第8章擴展了第7章所學,介紹如何創建同一個WebAssembly模塊的多個實例,并將每個實例按需動態鏈接到另一個WebAssembly模塊。
● 第9章講解了Web worker和pthread。在這一章中,你可以學到如何使用Web worker在瀏覽器的一個后臺線程中按需預取WebAssembly模塊,以及如何在WebAssembly模塊中用pthread線程執行并行處理。
● 第10章展示了WebAssembly并不局限于Web瀏覽器。你將學習如何在Node.js中使用自己的若干WebAssembly模塊。
第四部分深入探討了調試和測試。
● 第11章通過構建一個卡牌匹配游戲,講解了WebAssembly文本格式。
● 第12章擴展了這個卡牌匹配游戲,以展示調試WebAssembly模塊時可用的各種選項。
● 第13章講解了如何為自己的模塊編寫集成測試。
每一章都建立在前面章節的內容之上,因此最好按順序閱讀。開發者應該依次閱讀第1~3章,以理解WebAssembly是什么、它的工作原理,以及如何使用Emscripten工具包。附錄A很重要,你可以利用它來正確設置工具,以跟隨本書代碼。本書前兩部分覆蓋了核心概念,其余部分(高級主題和調試主題)可以根據需要閱讀。
關于代碼
本書包含很多源代碼示例,有編號列表形式的,也有嵌入正文之中的。為了區分代碼與普通文本,代碼以等寬字體表示。另外,如果代碼是從前面的示例修改而來,則修改部分以黑體表示。
有時本書展示的代碼會換行和縮進以適應頁面空間。極少數情況下,如果仍然沒有足夠的空間,那么會使用續行符(?)。
可以從Manning出版社網站獲得本書源代碼,參見www.manning.com/books/webassembly-in-action。1
1讀者也可到圖靈社區本書中文版主頁“隨書下載”處下載書中示例源代碼?!幷咦?/p>
本書論壇
購買本書即可免費訪問Manning出版社維護的一個私有Web論壇,你可以在該論壇上評論本書、提出技術問題,也可以從作者和其他用戶那里獲得幫助。
Manning出版社為所有讀者提供了一個交流場所,以便讀者之間以及讀者和作者之間可以進行有意義的對話。論壇并不能確保作者的參與程度,因為他對論壇的貢獻仍然是自愿性質的(且是無償的)。建議你嘗試向作者詢問一些具有挑戰性的問題,以引起對方的興趣。只要書仍然在版,你就可以在出版社的網站上訪問該論壇和相關討論。2
2讀者也可登錄圖靈社區本書中文版主頁,提交反饋意見和勘誤?!幷咦?/p>
其他在線資源
如需更多幫助,可訪問以下網站和社區。
● Emscripten官網為許多任務提供了大量文檔。
● Emscripten社區非?;钴S,發布頻繁。如果發現了Emscripten本身的問題,你可以查看是否已經有人提交了bug報告,或者了解如何解決你所遇到的問題。
● Stack Overflow也是一個很棒的網站,你可以在這里提問或幫助他人。
● 本書中文版網址鏈接請到圖靈社區本書頁面查看。
更多信息
掃描下方二維碼,即可獲取電子書相關信息及讀者群通道入口。
- Kubernetes實戰
- 軟件測試工程師面試秘籍
- Architecting the Industrial Internet
- Kotlin Standard Library Cookbook
- Learning ELK Stack
- JavaScript 程序設計案例教程
- 開源項目成功之道
- 從零開始學Python網絡爬蟲
- Getting Started with Nano Server
- Python應用開發技術
- Mastering Machine Learning with R
- Spring Web Services 2 Cookbook
- C++ Data Structures and Algorithm Design Principles
- Mastering Vim
- SAP HANA Starter