《Scratch底層架構源碼分析》一書由孟燦編寫,由機械工業出版社出版。
基本介紹
- 書名:Scratch底層架構源碼分析
- 作者:孟燦
- 出版社:機械工業出版社
- 出版時間:2020年
- 頁數:396 頁
- 定價:99 元
- 開本:16 開
- 裝幀:平裝
- ISBN:9787111667704
內容簡介,圖書目錄,編輯推薦,作者簡介,
內容簡介
本書從谷歌Blockly技術開始講起,逐步深入到Scratch的技術生態,對Scratch中的核心技術做了深入分析和源碼講解。通過閱讀本書,讀者不但可以系統地學習Scratch中的核心技術模組,而且還能深入理解Scratch底層代碼的實現和結構設計,為二次開發打下基礎。
本書共7章,涵蓋的主要內容有Blockly簡介、Scratch-blocks源碼分析、Scratch-vm源碼分析、Scratch-render源碼分析、Scratch-storage源碼分析、Scratch-gui源碼分析,以及Scratch-paint、Scratch-audio和Scratch-parser的簡單介紹。本書適合想了解Scratch語言底層技術架構的開發人員和技術愛好者,尤其是需要做Scratch二次開發的程式設計師閱讀。另外,本書還適合作為相關教學人員和研究人員的參考資料。
圖書目錄
第1章 開始Scratch之旅 1
1.1 Scratch概述 1
1.1.1 Scratch發展歷史 1
1.1.2 Scratch技術生態 2
1.1.3 Scratch使用現狀 2
1.1.4 Scratch源碼分析的意義 2
1.2 Webpack打包工具簡介 3
1.2.1 Webpack的核心概念 3
1.3 NPM包管理工具簡介 4
1.3.1 NPM的組成 4
1.3.2 NPM的使用場景 4
1.4 小結 5
第2章 Scratch-blocks:積木塊源碼分析 6
2.1 Scratch-blocks概述 6
2.1.1 Blockly技術簡介 6
2.1.2 Scratch-blocks與Blockly之間的關係 8
2.1.3 Scratch-blocks的作用 9
2.1.4 Scratch-blocks的分類 9
2.2 Scratch-blocks代碼結構與流程 9
2.2.1 Scratch-blocks代碼結構 10
2.2.2 Scratch-blocks代碼流程 12
2.3 Scratch-blocks核心代碼分析 14
2.3.1 blockly_uncompressed_vertical.js:垂直方向的非壓縮打包檔案 14
2.3.2 options.js:配置工作區 17
2.3.3 inject.js:將Scratch-blocks注入頁面19
2.3.4 workspace模組:工作區 28
2.3.5 toolbox.js:工具箱 34
2.3.6 Flyout模組:工具箱中的托盤 38
2.3.7 xml.js:XML讀寫器 46
2.3.8 event模組:各模組之間的通信 54
2.3.9 Field模組:代碼塊上的域 63
2.3.10 blockly.js:Blockly的核心JS庫 75
2.3.11 connection模組:代碼塊之間的連線 81
2.3.12 input.js:代碼塊上的輸入94
2.3.13 mutator.js:代碼塊的變形器 97
2.3.14 extensions.js:代碼塊的擴展 102
2.3.15 block.js:定義一個代碼塊105
2.4 小結 120
第3章 Scratch-vm:虛擬機源碼分析121
3.1 Scratch-vm概述 121
3.1.1 Scratch-vm的職責 121
3.2 Scratch-vm代碼結構與流程 122
3.2.1 Scratch-vm代碼結構 122
3.2.2 Scratch-vm代碼流程 123
3.3 Scratch-vm核心代碼分析 129
3.3.1 virtual-machine.js:最外層的API定義 129
3.3.2 blocks模組:代碼塊原語的實現 138
3.3.3 dispatch模組:訊息派發系統 151
3.3.4 engine模組:虛擬機的引擎 155
3.3.5 serialization模組:序列化與反序列化 188
3.3.6 sprite模組:精靈的渲染 196
3.4 小結 199
第4章 Scratch-render:渲染引擎源碼分析 200
4.1 Scratch-render渲染技術概述 200
4.1.1 WebGL概述 200
4.1.2 canvas概述 201
4.1.3 twgl.js概述 201
4.1.4 Scratch-render概述 201
4.2 Scratch-render代碼結構與流程 202
4.2.1 Scratch-render代碼結構 202
4.2.2 Scratch-render代碼流程 203
4.3 Scratch-render核心代碼分析 211
4.3.1 twgl.js關鍵函式介紹 212
4.3.2 RenderWebGL.js:渲染引擎最外層API的定義 219
4.4 小結 227
第5章 Scratch-storage:資源存儲源碼分析 228
5.1 Scratch-storage概述228
5.1.1 什麼是Scratch-storage228
5.1.2 Scratch-storage的主要內容229
5.2 Scratch-storage代碼結構與流程 229
5.2.1 Scratch-storage代碼結構 229
5.2.2 Scratch-storage代碼流程 230
5.3 Scratch-storage核心代碼分析239
5.3.1 ProxyTool模組:網路代理工具239
5.3.2 FetchTool模組:基於Fetch的網路工具 240
5.3.3 NetsTool模組:基於Nets的網路工具 241
5.3.4 FetchWorkerTool模組:基於任務的網路工具 241
5.4 小結 245
第6章 Scratch-gui:圖形化界面源碼分析246
6.1 Scratch-gui概述 246
6.1.1 Scratch-gui所處的位置 246
6.1.2 Scratch-gui的主要內容 247
6.2 React技術棧概述 247
6.2.1 什麼是React247
6.2.2 React關鍵技術 248
6.2.3 什麼是Redux 249
6.2.4 react-redux介紹 249
6.3 Scratch-gui代碼結構與流程 250
6.3.1 Scratch-gui代碼結構 250
6.3.2 Scratch-gui代碼流程 251
6.4 Scratch-gui核心代碼分析 261
6.5 小結 275
第7章 Scratch生態其他項目 276
7.1 Scratch-paint:繪圖編輯器 276
7.1.1 Scratch-paint目錄結構276
7.1.2 Scratch-paint使用方法277
7.2 Scratch-audio:音頻引擎 279
7.2.1 Scratch-audio目錄結構 280
7.2.2 Scratch-audio在Scratch-gui中的使用 280
7.3 Scratch-parser:解析驗證工具 283
7.3.1 Scratch-parser目錄結構 283
7.3.2 Scratch-parser在Scratch-vm中的使用 283
7.4 小結 284
編輯推薦
內容豐富:圍繞核心模組,全面、系統、深入地介紹Scratch技術生態的相關知識。
重點突出:圍繞代碼塊、虛擬機、渲染和存儲等核心技術,多角度展開講解。
深入淺出:以簡單易懂的語言講解深層次的架構知識,降低學習難度。實用性強:針對Scratch開發過程中的常見疑點和難點進行系統性講解。
作者簡介
孟燦 畢業於北京師範大學,獲工學碩士學位。對圖形圖像處理與模式識別有廣泛研究。曾經就職於國內外一線網際網路公司,有多年的網際網路行業開發和管理經驗,工作內容涉及算法、前端和後端等技術領域。2019年入職核桃編程教育公司,從事Scratch少兒編程教學研究和二次開發。