産品特色
編輯推薦
《JavaScript Web應用開發》介紹瞭用於提升軟件質量和改進開發流程的技術:首先教你如何製定能優化産品質量的過程,製定好過程後,每次修改代碼後都會執行一些任務,每次提交後都會運行測試,還能自動部署;其次集中介紹如何設計模塊化的組件,以及如何使用這些組件構建穩定的應用。內容包括自動化開發、測試和部署過程;JavaScript基礎知識和模塊化實踐;開發模塊化、可維護且經過良好測試的應用;掌握異步流程,理解MVC模式,設計REST API。
內容簡介
《JavaScript Web應用開發》是麵嚮一綫開發人員的一本實用教程,對新的Web開發技術與程序進行瞭全麵的梳理和總結,為JavaScript開發人員提供瞭改進Web開發質量和開發流程的新技術。本書主要分兩大塊,首先是以構建為目標實現JavaScript驅動開發,其次介紹如何管理應用設計過程中的復雜度,包括模塊化、MVC、異步代碼流、測試以及API設計原則。
作者簡介
Nicolas Bevacqua,是JavaScript開源社區的活躍成員,自由Web開發者,關注模塊化JavaScript、構建過程和新銳設計理念,偶爾進行公開演講,還是一名充滿激情的作傢。他維護著多個開源項目,還開設瞭一個博客,發錶關於Web、性能、漸進增強和JavaScript開發相關的文章,地址是ponyfoo.com。Nico現在和他的女友瑪麗安一起生活在阿根廷布宜諾斯艾利斯。
內頁插圖
精彩書評
“享受這段改進開發流程的旅程吧。”
——Addy Osmani,就職於榖歌
“JavaScript開發者必讀的一本書!”
——Stephen Wakely,就職於湯森路透公司
“現代JavaScript生態係統這一迷宮的指南。”
——Jonas Bandi,就職於IvoryCode GmbH
目錄
第一部分 構建過程
第1章 構建優先 2
1.1 問題齣現瞭 2
1.1.1 45分鍾內每秒損失17萬美元 3
1.1.2 構建優先 3
1.1.3 繁瑣的前戲 4
1.2 遵守構建優先原則,提前計劃 5
1.3 構建過程 7
1.4 處理應用的復雜度和設計理念 8
1.5 鑽研構建優先原則 12
1.5.1 檢查代碼質量 12
1.5.2 在命令行中使用lint工具 15
1.6 總結 18
第2章 編寫構建任務,製定流程 19
2.1 介紹Grunt 20
2.1.1 安裝Grunt 21
2.1.2 設置第一個Grunt任務 23
2.1.3 使用Grunt管理構建過程 24
2.2 預處理和靜態資源優化 26
2.2.1 詳述預處理 26
2.2.2 處理LESS 28
2.2.3 打包靜態資源 31
2.2.4 簡化靜態資源 32
2.2.5 創建子圖集 34
2.3 檢查代碼完整性 36
2.3.1 清理工作目錄 36
2.3.2 使用lint程序檢查代碼 37
2.3.3 自動運行單元測試 38
2.4 首次自己編寫構建任務 38
2.5 案例分析:數據庫任務 39
2.6 總結 41
第3章 精通環境配置和開發流程 42
3.1 應用的環境 42
3.1.1 配置構建模式 43
3.1.2 環境層麵的配置 47
3.1.3 開發環境有什麼特彆之處 48
3.2 配置環境 48
3.2.1 瀑布式存儲配置的方法 49
3.2.2 通過加密增強環境配置的安全性 50
3.2.3 使用係統級方式設置環境層麵的配置 52
3.2.4 在代碼中使用瀑布式方法閤並配置 53
3.3 自動執行繁瑣的首次設置任務 54
3.4 在持續開發環境中工作 54
3.4.1 監視變動,爭分奪秒 55
3.4.2 監視Node應用的變動 56
3.4.3 選擇一款閤適的文本編輯器 57
3.4.4 手動刷新瀏覽器已經過時瞭 58
3.5 總結 58
第4章 發布、部署和監控 59
4.1 發布應用 60
4.1.1 優化圖像 60
4.1.2 緩存靜態資源 62
4.1.3 內嵌對首屏至關重要的CSS 64
4.1.4 部署前要測試 65
4.2 預部署操作 65
4.2.1 語義化版本 66
4.2.2 使用更改日誌 67
4.2.3 提升版本號時提交更改日誌 67
4.3 部署到Heroku 68
4.3.1 在Heroku的服務器中構建 70
4.3.2 管理多個環境 71
4.4 持續集成 71
4.4.1 使用Travis托管的CI 72
4.4.2 持續部署 73
4.5 監控和診斷 74
4.5.1 日誌和通知 74
4.5.2 調試Node應用 76
4.5.3 分析性能 78
4.5.4 運行時間和進程管理 78
4.6 總結 79
第二部分 管理復雜度
第5章 理解模塊化和依賴管理 82
5.1 封裝代碼 83
5.1.1 理解單一職責原則 84
5.1.2 信息隱藏和接口 86
5.1.3 作用域和this關鍵字 87
5.1.4 嚴格模式 90
5.1.5 提升變量的作用域 91
5.2 JavaScript模塊 92
5.2.1 閉包和模塊模式 92
5.2.2 原型的模塊化 93
5.2.3 CommonJS模塊 94
5.3 管理依賴 95
5.3.1 依賴圖 95
5.3.2 介紹RequireJS 98
5.3.3 Browserify:在瀏覽器中使用CJS 模塊 100
5.3.4 Angular管理依賴的方式 100
5.4 理解包管理 102
5.4.1 Bower 簡介 103
5.4.2 大型庫,小組件 104
5.4.3 選擇閤適的模塊係統 105
5.4.4 學習循環依賴 105
5.5 ECMAScript 6新功能簡介 106
5.5.1 在Grunt任務中使用Traceur 107
5.5.2 Harmony中的模塊 107
5.5.3 創建塊級作用域的let關鍵字 108
5.6 總結 109
第6章 理解JavaScript中的異步流程控製方法 110
6.1 使用迴調 110
6.1.1 跳齣迴調之坑 111
6.1.2 解開混亂的迴調 112
6.1.3 嵌套請求 114
6.1.4 處理異步流程中的錯誤 116
6.2 使用async庫 119
6.2.1 使用瀑布式、串行還是並行 119
6.2.2 異步函數式任務 123
6.2.3 異步任務隊列 124
6.2.4 製定流程和動態流程 125
6.3 使用Promise對象 127
6.3.1 Promise對象基礎知識 127
6.3.2 鏈接Promise對象 130
6.3.3 控製流程 132
6.3.4 處理被拒絕的Promise對象 133
6.4 理解事件 134
6.4.1 事件和DOM 134
6.4.2 自己實現事件發射器 135
6.5 展望:ES6生成器 138
6.5.1 創建第一個生成器 138
6.5.2 生成器的異步性 140
6.6 總結 141
第7章 使用模型-視圖-控製器模式 142
7.1 jQuery力不勝任 142
7.2 在JavaScript中使用MVC模式 145
7.2.1 為什麼使用Backbone 146
7.2.2 安裝Backbone 147
7.2.3 使用Grunt和Browserify編譯Backbone模塊 147
7.3 介紹Backbone 148
7.3.1 Backbone視圖 149
7.3.2 創建Backbone模型 152
7.3.3 使用Backbone集閤組織模型 154
7.3.4 添加Backbone路由器 155
7.4 案例分析:購物清單 157
7.4.1 從靜態購物清單開始 157
7.4.2 添加刪除按鈕 159
7.4.3 把物品添加到購物車中 161
7.4.4 實現行內編輯 164
7.4.5 服務層和視圖路由 170
7.5 Backbone和Rendr:服務器和客戶端共享渲染 172
7.5.1 Rendr簡介 172
7.5.2 理解Rendr 的樣闆代碼 174
7.5.3 一個簡單的Rendr應用 176
7.6 總結 182
第8章 測試JavaScript組件 184
8.1 JavaScript測試速成課 185
8.1.1 隔離邏輯單元 185
8.1.2 使用TAP 186
8.1.3 編寫第一個單元測試 186
8.1.4 在瀏覽器中運行使用Tape編寫的測試 187
8.1.5 籌備、行動和斷言 188
8.1.6 單元測試 188
8.1.7 便利性優於約定 189
8.1.8 案例分析:為事件發射器編寫單元測試 189
8.1.9 測試事件發射器 190
8.1.10 測試.on方法 192
8.1.11 馭件、偵件和代理 193
8.1.12 模擬 194
8.1.13 介紹Sinon.js 195
8.1.14 監視函數的調用情況 195
8.1.15 代理require調用 196
8.2 在瀏覽器中測試 198
8.2.1 僞造XHR請求和服務器響應 198
8.2.2 案例分析:測試DOM交互 200
8.3 案例分析:為使用MVC模式開發的購物清單編寫單元測試 209
8.3.1 測試視圖路由器 209
8.3.2 測試視圖模型的驗證 214
8.4 自動運行Tape測試 216
8.4.1 自動運行瀏覽器中的Tape測試 217
8.4.2 持續測試 218
8.5 集成測試、外觀測試和性能測試 218
8.5.1 集成測試 219
8.5.2 外觀測試 219
8.5.3 性能測試 220
8.6 總結 221
第9章 REST API設計和分層服務架構 222
9.1 規避API設計誤區 222
9.2 學習REST API設計 223
9.2.1 端點、HTTP方法和版本 224
9.2.2 請求、響應和狀態碼 227
9.2.3 分頁、緩存和限流 229
9.2.4 為API編寫文檔 231
9.3 實現分層服務架構 232
9.3.1 路由層 233
9.3.2 服務層 233
9.3.3 數據層 234
9.3.4 路由層 234
9.3.5 服務層 234
9.3.6 數據層 235
9.4 在客戶端使用REST API 235
9.4.1 請求處理層 236
9.4.2 中止舊請求 236
9.4.3 使用一緻的方式處理AJAX錯誤 237
9.5 總結 238
附錄A Node.js的模塊 240
附錄B 介紹Grunt 242
附錄C 選擇閤適的構建工具 249
附錄D JavaScript代碼質量指南 257
前言/序言
JavaScript Web應用開發 下載 mobi epub pdf txt 電子書