作 者:孟燦 編
定 價:99
出 版 社:機械工業出版社
出版日期:2020年11月01日
頁 數:296
裝 幀:平裝
ISBN:9787111667704
內容豐富:圍繞核心模塊,全面、繫統地介紹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 什麼是Redux249
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
本書從谷歌Blockly技術開始講起,逐步深入到Scratch技術生態,對Scratch中的核心技術進行了深入分析和源碼講解,讓讀者不但可以繫統地學習Scratch中的核心概念,而且還能深入理解其代碼實現,為二次開發打下基礎。
本書共7章,對核心技術進行了精講,並對相關技術進行了介紹。本書涵蓋的內容有Blockly簡介、Scratch-blocks源碼分析、Scratch-vm源碼分析、Scratch-render源碼分析、Scratch-storage源碼分析、Scratch-gui源碼分析,以及Scratch-paint、Scratch-audio和Scratch-parser的簡單介紹及其相互聯繫和連接。
本書涉及軟件開發的底層內容,深入Scratch的架構設計及源碼實現,非常適合Scratch技術開發人員閱讀,也適合作為相關研究機構的參考資料使用。
孟燦 編
孟燦,畢業於北京師範大學,獲工學碩士學位。對圖形圖像處理與模式識別有廣泛研究。曾經就職於國內外一線互聯網公司,有多年的互聯網行業開發和管理經驗,工作內容涉及算法、前端和後端等技術領域。2019年入職核桃編程教育公司,從事Scratch少兒編程教學研究和二次開發。