注冊 | 登錄讀書好,好讀書,讀好書!
讀書網-DuShu.com
當前位置: 首頁出版圖書科學技術計算機/網絡軟件與程序設計前端跨界開發(fā)指南:JavaScript工具庫原理解析與實戰(zhàn)

前端跨界開發(fā)指南:JavaScript工具庫原理解析與實戰(zhàn)

前端跨界開發(fā)指南:JavaScript工具庫原理解析與實戰(zhàn)

定 價:¥129.00

作 者: 史文強 著
出版社: 機械工業(yè)出版社
叢編項:
標 簽: 暫缺

ISBN: 9787111708049 出版時間: 2022-08-01 包裝: 平裝
開本: 16開 頁數: 412 字數:  

內容簡介

  本書是字節(jié)跳動資深前端工程師嘔心瀝血之作,也是目前市場上少有的從原理到實戰(zhàn)深度剖析JavaScript生態(tài)中經典工具庫的技術圖書。 全書共有6篇,分別是基礎篇、圖形學篇、多媒體篇、跨端開發(fā)篇、游戲開發(fā)篇和跨界實踐篇,書中不僅詳細介紹了JavaScript語言在瀏覽器頁面之外的不同應用場景,更從實用技巧、設計理念、原理源碼等角度對精心挑選的30多個工具庫進行了全方位的解析,希望讀者在領略JavaScript代碼之美的同時,也能拓寬技術視野。為了幫助讀者更好地理解書中所講述的內容,隨書代碼倉庫里提供了大量可運行的源碼,包括精簡版的庫重寫和完整的代碼示例。

作者簡介

  史文強前端資深技術專家,現(xiàn)任字節(jié)跳動幸福里團隊前端工程師、西安交通大學航天學院特聘軟件工程師,華為云云享專家,曾受Google GDG(Google開發(fā)者社區(qū))邀請進行技術分享。擁有豐富的實戰(zhàn)經驗,擅長大型前端系統(tǒng)架構設計、性能優(yōu)化及工程化體系建設。活躍于各大前端技術社區(qū),撰寫了《Node.js原理&源碼賞析》《帶著Canvas去流浪》《響應式編程的思維藝術》等多個連載專題,累計發(fā)表前端技術原創(chuàng)博文百余篇,曾獲2018年華為云社區(qū)杰出貢獻獎(暨年度十大技術博主)。

圖書目錄

【基礎篇】
第1章 Mock.js:如何與后端瀟灑分手2
1.1 為什么你總是下不了班3
1.2 聯(lián)調加速4
1.3 使用Mock.js4
1.3.1 Mock.js的語法規(guī)范5
1.3.2 Mock.js實戰(zhàn)6
1.3.3 自定義擴展8
1.4 Mock.js的基本原理9
1.4.1 從模板到數據9
1.4.2 為Ajax請求提供Mock數據11
1.5 從Mock服務到API管理平臺14
第2章 Node.js:連接16
2.1 大話Node.js16
2.1.1 Node.js是什么16
2.1.2 Node.js能做什么17
2.1.3 招黑的JavaScript全棧工程師19
2.2 業(yè)界用Node.js做什么19
2.2.1 前端工程化20
2.2.2 中間層20
2.2.3 SSR引擎21
2.2.4 協(xié)作連接22
2.3 小結22
第3章 ESLint:你的代碼里藏著你的優(yōu)雅24
3.1 代碼風格與破窗理論25
3.2 用editorconfig配置IDE28
3.2.1 基本語法及屬性29
3.2.2 配置實例29
3.3 使用ESLint規(guī)范編程風格30
3.3.1 配置文件和規(guī)則集30
3.3.2 ESLint插件開發(fā)實戰(zhàn)32
3.3.3 初學者的修行32
3.4 新秀工具Prettier33
3.5  靜態(tài)類型檢查工具的實現(xiàn)原理34
3.5.1 編譯語言和解釋語言34
3.5.2 編譯流程34
3.5.3 編譯簡單的JavaScript程序35
第4章 模塊演義與Require.js39
4.1  模塊化的需求推演40
4.1.1 script標簽40
4.1.2 代碼隔離41
4.1.3 依賴管理42
4.2  模塊規(guī)范大雜燴43
4.2.1 概述43
4.2.2 幾個重要的差異44
4.3 模塊化規(guī)范的兼容與工具演進48
4.4 Require.js的使用方法50
4.5 Require.js的核心原理52
第5章 Lodash.js是工具,更是秘籍55
5.1 Lodash.js是什么55
5.1.1 概述56
5.1.2 代碼的較量56
5.2 重點API的剖析59
5.3 Lodash.js的源碼結構62
5.3.1 基本結構62
5.3.2 Lodash.js源碼的學習方法63
第6章 靜態(tài)類型檢查:Flow.js和TypeScript64
6.1 靜態(tài)類型檢查65
6.1.1 靜態(tài)類型檢查的優(yōu)勢65
6.1.2 靜態(tài)類型檢查的劣勢66
6.2 Flow.js,易上手的靜態(tài)類型檢查工具67
6.2.1 Flow.js中的類型標注67
6.2.2 Flow.js的優(yōu)勢68
6.3 TypeScript,另一種選擇69
第7章 用函數描述世界:Ramda.js71
7.1 本能的思考方式71
7.2 開始編碼72
7.2.1 傳統(tǒng)編程的實現(xiàn)72
7.2.2 函數式編程的推演73
7.2.3 函數式編程的意義76
7.2.4 函數式編程的基本理論77
7.3 基于Ramda.js體驗函數式編程79
7.3.1 使用Ramda.js80
7.3.2 函數化的流程控制81
7.4 選擇82
第8章 Rxjs:前端世界的“老人與?!?3
8.1 信息管道84
8.1.1 不同的“單一職責”84
8.1.2 分布式狀態(tài)的可能性86
8.1.3 你的程序在做什么87
8.2 數據的生產88
8.2.1 數據源的抽象88
8.2.2 設計模式的應用90
8.3 Rxjs:一切皆是流的世界91
8.3.1 Rxjs的核心概念92
8.3.2 Rxjs應用實例94
8.3.3 新版“老人與?!?00
8.4 以自己喜歡的方式去編程101
第9章 不可變數據的制造藝術:Immer.js和Immutable.js102
9.1 克隆103
9.1.1 淺克隆103
9.1.2 深克隆103
9.2 元編程與Immer.js104
9.2.1 元編程105
9.2.2 Immer.js的核心原理106
9.3 Immutable.js與共享結構112
9.3.1 Immutable.js簡介113
9.3.2 Immutable.js的核心原理113
9.3.3 Immutable.js中的讀寫操作117
9.4 小結119
第10章 Day.js:算個日期能有多難121
10.1 日期和時間121
10.2 使用Day.js125
10.3 國際化應用開發(fā)中的時間處理127

【圖形學篇】
第11章 所見即所得的流程圖:jsplumb.js和viz.js130
11.1 方案構思130
11.2 開始使用jsplumb.js132
11.3 圖布局引擎viz.js135
11.4 所見即所得137
第12章 easel.js:一個標簽一個世界139
12.1 能玩一生的標簽139 12.1.1 基本語法介紹139
12.1.2 動畫模式141
12.2 用easel.js操作Canvas142
12.3 工具庫的封裝技巧144
第13章 Echarts.js: 看見147
13.1 數據可視化生態(tài)148
13.2 開始使用Echarts.js148
13.2.1 Echarts的正確打開方式149
13.2.2 重點API151
13.2.3 配置項152
13.3 數據可視化三步曲153
13.3.1 數據準備153
13.3.2 圖表選型153
13.3.3 細節(jié)打磨155
13.4 下一步的選擇158
第14章 SVG變形記159
14.1 矢量圖的世界159
14.1.1 SVG圖形159
14.1.2 SVG的高級功能160
14.2 SVG變形165
14.2.1 SVG動畫與CSS3動畫165
14.2.2 經典SVG動畫166
14.3 Snap.svg快速入門168
14.3.1 Snap方法集168
14.3.2 Snap.svg實戰(zhàn)169
14.4 取舍171
第15章 Three.js:構建立體的用戶界面172
15.1 三維世界的腳手架Three.js173
15.1.1 核心概念173
15.1.2 分解網格模型175
15.1.3 Three.js的基本使用方法177
15.2 實戰(zhàn):用Three.js制作漫威電影片頭動畫179
15.2.1 特效一:平面漸離180
15.2.2 特效二:字體浮雕模型181
15.2.3 特效三:視頻紋理貼圖183
15.2.4 特效四:鏡頭轉換185
15.3 Three.js如何參與渲染186
15.3.1 相機模式和降維打擊186
15.3.2 著色器190
15.3.3 WebGL的渲染流程192
15.4 用Cinema4D玩轉跨界193

【多媒體篇】
第16章 Impress.js:網頁里的PPT200
16.1 Impress.js的應用及原理200
16.1.1 快速上手Impress.js200
16.1.2 Impress.js的實現(xiàn)原理202
16.2 詳解CSS變形和動畫203
16.2.1 幀和關鍵幀204
16.2.2 CSS補間動畫206
16.3 軟技能:PPT設計208
16.3.1 內容為王208
16.3.2 設計入門課209
第17章 Velocity.js與高性能動畫之謎211
17.1 CSS動畫和JavaScript動畫211
17.1.1 CSS動畫212
17.1.2 JavaScript動畫214
17.2 Velocity.js入門指南216
17.2.1 stagger交錯動畫217
17.2.2 在SPA框架中編寫動畫219
17.3 高性能動畫的秘密223
17.3.1 像素渲染管線224
17.3.2 回流、重繪與合成226
17.3.3 使用合成層獲得高性能227
17.3.4 隱式提升陷阱229
17.4 小結231
第18章 扭曲時間:tween.js和jQuery Easing Plugin232
18.1 緩動函數233
18.2 貝賽爾曲線234
18.2.1 繪制原理234
18.2.2 貝賽爾曲線的特性236
18.3 使用Tween.js和jQuery Easing Plugin237
18.4 選擇恰當的緩動函數239
第19章 用Recorder.js實現(xiàn)語音信號處理241
19.1 百度語音識別實戰(zhàn)241
19.1.1 工業(yè)系統(tǒng)測量的預備知識242
19.1.2 改造Recorder.js243
19.2 Web Audio API的工作模式246
19.2.1 中間件式的音頻處理圖246
19.2.2 Recorder.js核心原理:Script-ProcessorNode247
19.2.3 淺談ArrayBuffer250
第20章 jsmpeg.js流媒體播放器253
20.1 視頻編解碼技術入門254
20.1.1 基礎知識254
20.1.2 初識傳輸流255
20.2 現(xiàn)代瀏覽器中的播放技術258
20.2.1 Media Source Extension259
20.2.2 其他格式的媒體資源261
20.3 切片技術與TS文件解析262
20.3.1 文件切片技術 262
20.3.2 解析TS切片263
20.4 jsmpeg.js源碼結構和低延遲播放實例266

【跨端開發(fā)篇】
第21章 “懶”是第一生產力:制作命令行工具272
21.1 Commander.js與Git風格的命令行工具273
21.2 Inquirer.js與交互式命令行工具275
21.3 從工具化到工程化277
第22章 用Shelljs實現(xiàn)自動化部署279
22.1 Linux入門小課279
22.2 實用的跨平臺工具281
22.3 實戰(zhàn):使用Shelljs和node-ssh完成自動化部署283
22.4 下一站:性能監(jiān)控288
第23章 跨端技術的秘密289
23.1 Cordova的前世今生290
23.2 React Native291
23.3 小程序292
23.4 原生App與網頁的通信294
23.5 小結296
第24章 protobuf與二進制消息298
24.1 前端常見的消息格式298
24.2 二進制消息格式:protobuf302
24.3 使用protobuf.js307
24.4 初探gRPC310
第25章 控制反轉與Inversify.js314
25.1 依賴為什么需要注入315
25.2 IOC容器的實現(xiàn)317
25.3 AOP和裝飾器322
25.4 用Inversify.js實現(xiàn)依賴注入325
25.5 小結330
游戲開發(fā)篇
第26章 基于CreateJS解構游戲開發(fā)332
26.1 工具包CreateJS333
26.2 實戰(zhàn)開發(fā):《飛龍大戰(zhàn)》334
26.3 性能提升技巧341
第27章 經典物理與matter.js345
27.1 經典力學回顧346
27.2 仿真的實現(xiàn)原理347
27.2.1 基本動力學模擬347
27.2.2 碰撞模擬349
27.3 物理引擎matter.js350
27.3.1 《憤怒的小鳥》的物理特性分析350
27.3.2 使用matter.js構建物理模型351
27.3.3 物理引擎如何牽手游戲引擎354
第28章 Phaser:從工具到生態(tài)357
28.1 快速上手Phaser游戲開發(fā)357
28.2 淺談框架的選擇364

【跨界實踐篇】
第29章 brain.js:寫給前端的神經網絡入門課366
29.1 從關鍵詞開始366
29.2 認識神經網絡369
29.2.1 基本結構369
29.2.2 神經元的數學模型372
29.2.3 激活函數與非線性決策邊界374
29.2.4 神經網絡中的信息傳遞377
29.3 使用brain.js構建神經網絡379
29.4 小結382
第30章 TensorFlow.js:開箱即用的深度學習工具383
30.1 上手TensorFlow.js383
30.2 使用TensorFlow.js構建卷積神經網絡387
30.2.1 卷積神經網絡387
30.2.2 搭建LeNet-5模型390
30.3 基于遷移學習的語音指令識別392
第31章 用JavaScript玩轉物聯(lián)網394
31.1 入門級物聯(lián)網“玩具”Arduino394
31.1.1 Arduino UNO R3板卡結構395
31.1.2 模擬量和數字量396
31.1.3 Arduino原生編程入門397
31.1.4 Arduino實驗示例一:按鈕控制三色LED燈398
31.1.5 Arduino實驗示例二:使用DHT11模塊采集溫濕度信息402
31.2 PC與MCU之間的串口通信403
31.3 使用Johnny-Five進行嵌入式開發(fā)407
31.3.1 初識Johnny-Five407
31.3.2 Firmata.js源碼導讀408
31.3.3 舵機風扇實驗410
31.4 小結412

本目錄推薦

掃描二維碼
Copyright ? 讀書網 ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網安備 42010302001612號