大型JavaScript套用最佳實踐指南,是一本圖書,2017-01-01由電子工業出版社出版,作譯者:奇舞團。
基本介紹
- 書名:大型JavaScript套用最佳實踐指南
- 作者:奇舞團
- 譯者:奇舞團
- ISBN:9787121307065
- 類別:圖書
- 頁數:236
- 定價:65.00
- 出版社:電子工業出版社
- 出版時間:2017-01-01
- 裝幀:平裝
- 開本:16開
基本信息,內容簡介,目錄信息,
基本信息
著者:(加)Adam Boduch (亞當·博達哈)
作譯者:奇舞團
出版時間:2017-01千 字 數:285版次:01-01 頁 數:236
開本:16開裝幀:I S B N :9787121307065
出版社:電子工業出版社
內容簡介
本書將帶你設計和實現能從多個維度(如定址能力、可配置性和性能)可伸縮的JavaScript的應用程式體系架構;了解常見的JavaScript縮放陷阱,並通過真實的解決方案和策略解決這些問題。內容包括:確定和評估應用程式的外部擴展影響力,創建構成大規模JavaScript應用程式的組件,對可擴展組件間的通信進行設計,設計一個不受限於環境的便攜的且可測試的應用程式,等等。
目錄信息
1 擴展JavaScript 套用 ................................................................................. 1
影響擴展的因素 ....................................................................................................................... 2
對可擴展的需要 ................................................................................................................................... 2
不斷增長的用戶 ................................................................................................................................... 3
添加新功能 ........................................................................................................................................... 3
僱傭更多的開發者 ............................................................................................................................... 4
架構角度 .................................................................................................................................. 5
瀏覽器是一個獨特的環境 ....................................................................................................... 5
組件設計 ............................................................................................................................................... 7
組件通信 ............................................................................................................................................... 7
載入時間 ............................................................................................................................................... 8
回響性 ................................................................................................................................................... 9
可定址性 ............................................................................................................................................... 9
可配置性 ............................................................................................................................................. 10
架構性取捨 ............................................................................................................................. 11
確定不可變內容 ................................................................................................................................. 11
從開發的便捷性考慮性能 .................................................................................................................. 11
性能的可配置性 ................................................................................................................................. 12
從可替換性考慮性能 .......................................................................................................................... 13
可定址性的開發便捷性 ...................................................................................................................... 13
性能的可維護性 ................................................................................................................................. 13
減少功能以提高可維護性 .................................................................................................................. 14
利用框架 ............................................................................................................................................. 15
框架與類庫 ............................................................................................................................. 16
一致地實現模式 ................................................................................................................................. 16
內建的性能 ......................................................................................................................................... 16
利用社區智慧 ..................................................................................................................................... 16
框架並非天生支持擴展 ...................................................................................................................... 17
小結 ........................................................................................................................................ 17
2 可擴展性的影響因素 ................................................................................ 19
擴展用戶 ................................................................................................................................ 20
許可證費用 ......................................................................................................................................... 20
訂閱費用 ............................................................................................................................................. 21
消耗費用 ............................................................................................................................................. 21
廣告支持 ............................................................................................................................................. 21
開源 ..................................................................................................................................................... 22
與用戶溝通 ......................................................................................................................................... 23
支持機制 ............................................................................................................................................. 24
反饋機制 ............................................................................................................................................. 25
提示用戶 ............................................................................................................................................. 26
用戶維度 ............................................................................................................................................. 26
擴展用戶示例 ..................................................................................................................................... 27
擴展功能 ................................................................................................................................ 28
套用價值 ............................................................................................................................................. 28
“殺手級”功能與“殺死”套用的功能 .......................................................................................... 29
數據驅動的功能 ................................................................................................................................. 30
與競品比較 ......................................................................................................................................... 30
修改已有的功能 ................................................................................................................................. 31
支持用戶分組和角色 .......................................................................................................................... 32
增加新服務 ......................................................................................................................................... 32
擴展功能示例 ..................................................................................................................................... 34
開發的可擴展性 ..................................................................................................................... 34
尋找開發資源 ..................................................................................................................................... 35
開發職責 ............................................................................................................................................. 36
資源過多 ............................................................................................................................................. 36
擴展開發示例 ..................................................................................................................................... 37
影響因素檢查表 ..................................................................................................................... 37
用戶檢查清單 ..................................................................................................................................... 38
功能清單 ............................................................................................................................................. 39
開發者清單 ......................................................................................................................................... 41
小結 ........................................................................................................................................ 41
3 組件組合 .................................................................................................. 43
通用組件 ................................................................................................................................ 44
模組 ..................................................................................................................................................... 44
路由器 ................................................................................................................................................. 46
模型/集合 ............................................................................................................................................ 50
控制器/視圖 ........................................................................................................................................ 53
模板 ..................................................................................................................................................... 55
套用特定的組件 ................................................................................................................................. 56
擴展通用組件 ......................................................................................................................... 56
識別公用數據、功能 .......................................................................................................................... 56
擴展路由器組件 ................................................................................................................................. 57
擴展模型/集合 .................................................................................................................................... 58
擴展控制器/視圖 ................................................................................................................................ 59
將功能映射到組件 ................................................................................................................. 60
通用功能 ............................................................................................................................................. 61
特定功能 ............................................................................................................................................. 61
解構組件 ................................................................................................................................ 62
維護和調試組件 ................................................................................................................................. 62
重構複雜組件 ..................................................................................................................................... 64
可插拔的業務邏輯 ................................................................................................................. 64
擴展與配置 ......................................................................................................................................... 65
無狀態的業務邏輯 .............................................................................................................................. 65
組織組件代碼 ......................................................................................................................... 66
小結 ........................................................................................................................................ 67
4 組件的通信與職責.................................................................................... 69
通信模型 ................................................................................................................................ 69
訊息傳遞模型 ..................................................................................................................................... 70
事件模型 ............................................................................................................................................. 70
通信數據結構 ......................................................................................................................... 71
命名約定 ............................................................................................................................................. 71
數據格式 ............................................................................................................................................. 72
公共數據 ............................................................................................................................................. 73
可追蹤的組件通信 ................................................................................................................. 74
訂閱事件 ............................................................................................................................................. 74
全局事件日誌 ..................................................................................................................................... 74
事件的生命周期 ................................................................................................................................. 77
通信的開銷 ............................................................................................................................. 77
事件的頻率 ......................................................................................................................................... 78
回調函式執行時間 .............................................................................................................................. 80
事件複雜度 ......................................................................................................................................... 81
通信責任區 ............................................................................................................................. 82
後端API ............................................................................................................................................. 82
Web Socket 用於更新狀態 .................................................................................................................. 83
DOM 更新........................................................................................................................................... 85
松耦合的通信 ......................................................................................................................... 86
替換組件 ............................................................................................................................................. 86
應對意外事件 ..................................................................................................................................... 87
組件分層 ................................................................................................................................ 90
事件流向 ............................................................................................................................................. 90
開發者的職責 ..................................................................................................................................... 91
構建代碼思維導圖 .............................................................................................................................. 91
小結 ........................................................................................................................................ 92
5 定址和導航 .............................................................................................. 93
實現路由的方法 ..................................................................................................................... 93
Hash URI ............................................................................................................................................. 94
傳統URI ............................................................................................................................................. 94
路由是如何工作的 ................................................................................................................. 95
路由的職責 ......................................................................................................................................... 95
路由事件 ............................................................................................................................................. 96
URI 的結構和模式 ................................................................................................................. 96
編碼信息 ............................................................................................................................................. 97
設計URI ............................................................................................................................................. 97
將資源映射到URI ................................................................................................................. 99
手動創建URI ..................................................................................................................................... 99
自動生成資源URI .............................................................................................................................. 99
觸發路由 ............................................................................................................................... 103
用戶行為 ........................................................................................................................................... 103
重定向用戶 ....................................................................................................................................... 104
路由配置 ............................................................................................................................... 104
靜態路由聲明 ................................................................................................................................... 105
註冊事件 ........................................................................................................................................... 105
禁用路由 ........................................................................................................................................... 105
故障排查 ............................................................................................................................... 108
路由器衝突 ....................................................................................................................................... 108
記錄初始配置 ................................................................................................................................... 110
記錄路由事件 ................................................................................................................................... 110
處理非法資源的狀態 ........................................................................................................................ 110
小結 ...................................................................................................................................... 111
6 用戶偏好和默認設定 ............................................................................... 113
偏好類型 ............................................................................................................................... 113
地區 ................................................................................................................................................... 113
行為 ................................................................................................................................................... 114
外觀 ................................................................................................................................................... 115
支持地區 ............................................................................................................................... 115
決定支持哪些地區 ............................................................................................................................ 115
維護地區 ........................................................................................................................................... 116
設定地區 ............................................................................................................................... 116
選擇地區 ........................................................................................................................................... 117
存儲地區偏好 ................................................................................................................................... 117
URI 中的地區 ................................................................................................................................... 118
通用組件配置 ....................................................................................................................... 118
選擇配置的值 ................................................................................................................................... 119
存儲和硬編碼默認值 ........................................................................................................................ 119
對後端的影響 ................................................................................................................................... 120
載入配置值 ....................................................................................................................................... 121
配置行為 ............................................................................................................................... 122
啟用和禁用組件 ............................................................................................................................... 122
改變數量 ........................................................................................................................................... 123
改變順序 ........................................................................................................................................... 124
配置通知 ........................................................................................................................................... 126
行內選項 ........................................................................................................................................... 126
改變外觀 ............................................................................................................................... 127
主題工具 ........................................................................................................................................... 127
選擇一個主題 ................................................................................................................................... 128
單獨的樣式偏好 ............................................................................................................................... 128
性能影響 ............................................................................................................................... 128
可配置地區的性能 ............................................................................................................................ 129
可配置行為的性能 ............................................................................................................................ 129
可配置主題的性能 ............................................................................................................................ 132
小結 ...................................................................................................................................... 132
7 載入時間和回響速度 ............................................................................... 135
組件構件 ............................................................................................................................... 135
組件依賴 ........................................................................................................................................... 135
構建組件 ........................................................................................................................................... 136
載入組件 ............................................................................................................................... 137
載入模組 ........................................................................................................................................... 137
懶惰的模組載入 ............................................................................................................................... 138
模組載入的延遲 ............................................................................................................................... 139
通信瓶頸 ............................................................................................................................... 141
減少間接引用 ................................................................................................................................... 141
分析代碼 ........................................................................................................................................... 143
組件最佳化 ............................................................................................................................... 145
維護狀態的組件 ............................................................................................................................... 145
處理副作用 ....................................................................................................................................... 146
DOM 渲染技術 ................................................................................................................................. 148
API 數據 ............................................................................................................................... 150
載入延遲 ........................................................................................................................................... 150
處理大數據集 ................................................................................................................................... 151
最佳化運行時組件 ................................................................................................................... 152
小結 ...................................................................................................................................... 153
8 可移植性和測試 ...................................................................................... 155
與後端解耦 ........................................................................................................................... 155
模擬後端API ................................................................................................................................... 155
前端入口 ........................................................................................................................................... 156
模擬工具 ........................................................................................................................................... 157
生成模擬數據集 ............................................................................................................................... 158
執行操作 ........................................................................................................................................... 159
功能設計過程 ....................................................................................................................... 159
設計API ........................................................................................................................................... 160
實現模擬數據 ................................................................................................................................... 160
實現功能 ........................................................................................................................................... 161
協調模擬數據與真實數據 ................................................................................................................ 162
單元測試工具 ....................................................................................................................... 163
框架自帶的工具 ............................................................................................................................... 163
獨立的單元測試工具 ........................................................................................................................ 164
工具鏈和自動化 ............................................................................................................................... 165
測試模擬場景 ....................................................................................................................... 166
模擬API 和測試固件 ........................................................................................................................ 166
場景生成工具 ................................................................................................................................... 167
端到端測試和持續集成 ....................................................................................................... 168
小結 ...................................................................................................................................... 169
9 縮小規模 ................................................................................................. 171
擴展限制 ............................................................................................................................... 171
JavaScript 檔案體積 .......................................................................................................................... 172
網路頻寬 ........................................................................................................................................... 173
記憶體消耗 ........................................................................................................................................... 175
CPU 消耗 .......................................................................................................................................... 177
後端能力 ........................................................................................................................................... 179
互相矛盾的功能 ................................................................................................................... 180
重疊的功能 ....................................................................................................................................... 181
冗餘的功能 ....................................................................................................................................... 182
用戶需求 ........................................................................................................................................... 182
設計失效 ............................................................................................................................... 183
多餘的組件 ....................................................................................................................................... 184
低效的數據處理 ............................................................................................................................... 186
過度創建標記 ................................................................................................................................... 190
套用組合 ............................................................................................................................... 191
功能的啟動 ....................................................................................................................................... 191
新功能的影響 ................................................................................................................................... 192
重要的庫 ........................................................................................................................................... 192
小結 ...................................................................................................................................... 193
10 處理錯誤 ............................................................................................... 195
快速失效 ............................................................................................................................... 195
使用質量約束 ................................................................................................................................... 196
提供有意義的反饋 ............................................................................................................................ 196
當無法快速失效時…… .................................................................................................................... 197
容錯 ...................................................................................................................................... 198
區分關鍵行為 ................................................................................................................................... 198
探測和控制錯誤行為 ........................................................................................................................ 199
禁用出錯組件 ................................................................................................................................... 202
優雅地降級功能 ............................................................................................................................... 203
故障恢復 ............................................................................................................................... 204
重試失敗操作 ................................................................................................................................... 204
重啟組件 ........................................................................................................................................... 207
用戶手動干涉 ................................................................................................................................... 208
當我們無法從故障中恢復…… ........................................................................................................ 209
性能和複雜度 ....................................................................................................................... 210
異常處理 ........................................................................................................................................... 210
狀態檢查 ........................................................................................................................................... 211
通知其他組件 ................................................................................................................................... 211
記錄日誌和調試 ................................................................................................................... 212
有意義的錯誤日誌 ............................................................................................................................ 212
為潛在故障發出警告 ........................................................................................................................ 213
通知和指導用戶 ............................................................................................................................... 214
改進架構 ............................................................................................................................... 214
記錄錯誤場景 ................................................................................................................................... 215
改進組件分類 ................................................................................................................................... 215
複雜導致出錯 ................................................................................................................................... 216
小結 ...................................................................................................................................... 216