編輯推薦
JavaScript開發框架可以說是野蠻生長,發展迅速。在過去幾年中,JavaScript開發工具大規模發展並日趨成熟。
本書是JavaScript開發框架的一本前沿學習指南。本書介紹瞭備受zishen開發者關注與支持的庫、框架和工具,無論新齣現的還是較為成熟的庫和框架都有所涉及。本書介紹的工具涵蓋瞭整個開發技術棧,既包括客戶端也包括服務端。
本書無法囊括每個JavaScript庫的全部知識點,它聚焦於生産環境中一些非常實用的庫和框架。在本書中,你將會看到依賴管理工具的詳細分析和示例代碼、模塊化和自動化構建任務的代碼實現,創建專門的應用服務器、客戶端應用程序架構,實現橫嚮擴展,以及管理不同類型的數據庫。
本書介紹的庫和框架包括 Bower、Grunt、Yeoman、PM2、RequireJS、Browserify、Knockout、AngularJS、Kraken、Mach、Mongoose、Knex、Bookshelf、Faye、Q、Async.js、Underscore 以及 Lodash。
本書由兩位專業人士編寫,讀者從他們的親身經曆可以學習到大量成功與失敗的經驗,可以迅速瞭解通常在 API 文檔或 Readme 中沒有明確說明的諸多問題,並可以快速學習如何專業地使用JavaScript庫和框架。
內容簡介
JavaScript是現代Web開發必不可少的編程語言,但JavaScript的生態係統包括庫、框架以及工具都在快速地發展且日益龐大。程序員學習的需求和麵臨的挑戰也相應地增加。
JavaScript開發框架quanwei指南涵蓋瞭在開發過程中常用的各種JavaScript工具,以幫助讀者在大量流行的JavaScript工具中做選擇。全書分為16章,從開發工具、模塊加載器、客戶端框架、服務端框架數據庫交互、通信、管理控製流和其他有用框架等幾個方麵,涵蓋瞭Bower、Grunt、Yeoman、PM2、RequireJS、Browserify、Knockout、AngularJS、Kraken、Mach、Mongoose、Knex、Bookshelf、Faye、Q、Async.js、Underscore和 Lodash等框架和庫。全書涵蓋瞭客戶端和服務器端的開發,通過細緻的講解、詳細的代碼示例,闡明瞭這些工具的用法。
JavaScript是現代Web開發必不可少的編程語言,但JavaScript的生態係統包括庫、框架以及工具都在快速地發展且日益龐大。程序員學習的需求和麵臨的挑戰也相應地增加。
作者簡介
Tim Ambler是來自美國田納西州那什維爾的一名軟件工程師。他對編程的熱情來自於父親。在他小的時候,他的父親就嚮他介紹瞭Commodore 64電腦。Tim 是幾個流行的開源項目的作者,其中whenLive已經被GitHub員工采用。作為會議演說傢和多産的作傢,Tim多次被在綫齣版物推薦,如JavaScript Weekly和Node Weekly。Tim目前與他的妻子和2隻貓生活在南部。讀者可以在Twitter上 @tkambler 關注他。
Nicholas Cloud是一名軟件工程師,居住在非常潮濕的城市聖路易斯。過去十幾年裏,他利用自己的技能成就一番成功事業。通過JavaScript、C+和PHP,他開發瞭大量適用於多終端的Web應用、Web服務、桌麵應用。Nicholas是開源軟件的有力支持者,緻力於userland項目,並寫瞭幾個自己的開源庫。在業餘時間,他在不同的用戶組發言、參加會議、寫書、寫技術文章、寫博客。他的Twitter是@nicholascloud。
目錄
目 錄
第1章 Bower 1
1.1 準備工作 1
1.2 配置Bower 2
1.3 清單文件(Manifest) 2
創建新的清單文件 3
1.4 查找、添加和刪除Bower包 3
1.4.1 查找包 3
1.4.2 添加包 3
1.4.3 刪除包 5
1.5 語義化版本控製 5
1.6 維護依賴鏈 6
1.7 創建Bower包 7
1.7.1 選擇有效的包名 7
1.7.2 使用語義化版本(Semver)的
Git標簽 7
1.7.3 將軟件包發布到注冊中心 7
1.8 小結 8
第2章 Grunt 9
2.1 安裝Grunt 10
2.2 Grunt是如何工作的 10
2.2.1 Gruntfile.js 10
2.2.2 任務(Tasks) 11
2.2.3 插件(Plugins) 11
2.2.4 配置 12
2.3 將Grunt添加到項目中 12
保持閤理的Grunt結構 12
2.4 與任務共舞 14
2.4.1 配置管理 14
2.4.2 任務描述 15
2.4.3 異步任務 15
2.4.4 任務依賴 16
2.4.5 多任務 16
2.4.6 多任務中的Options 17
2.7 模闆配置 18
2.4.8 命令行選項 19
2.4.9 提供反饋 19
2.4.10 錯誤處理 20
2.5 操作文件係統 20
2.5.1 源-目標映射 20
2.5.2 監視文件變化 22
2.6 創建Grunt插件 25
2.6.1 開始 25
2.6.2 創建任務 26
2.6.3 將任務發布到npm 28
2.7 總結 28
2.8 相關資源 29
第3章 Yeoman 30
3.1 安裝Yeoman 30
3.2 創建第一個項目 30
3.2.1 子命令 33
3.3 創建你的第一個腳手架 34
3.3.1 Yeoman腳手架是一個Node
模塊 34
3.3.2 子腳手架 35
3.3.3 定義二級命令 39
3.3.4 可組閤性 41
3.4 小結 41
3.5 相關資源 42
第4章 PM2 43
4.1 安裝 43
4.2 與進程一起工作 43
4.2.1 從錯誤中恢復 46
4.2.2 監控文件變化 47
4.3 監控日誌 48
4.4 監控資源占用 49
4.41 監控本地資源 49
4.4.2 監控遠程資源 49
4.5 進程的高級管理 52
4.5.1 通過JSON方式配置應用 52
4.6 多核處理器的負載均衡 55
4.6.1 0秒宕機的部署方式 57
4.7 小結 59
4.8 相關資源 59
第5章 RequireJS 60
5.1 運行示例 61
5.2 使用RequireJS 61
5.2.1 安裝 62
5.2.2 配置 62
5.2.3 應用模塊和依賴 64
5.2.4 路徑和彆名 66
5.2.5 Shims 69
5.2.6 加載器插件 73
5.2.7 緩存清除 78
5.3 RequireJS優化 80
5.3.1 配置 r.js 80
5.3.2 運行r.js命令 81
5.4 小結 82
第6章 Browserify 84
6.1 AMD API與CommonJS對比 84
6.2 安裝Browserify 85
6.3 創建你的第一個Bundle 85
6.4 可視化依賴樹 87
6.5 發生變化時重新打包文件 88
6.5.1 通過Grunt監聽文件變化 88
6.5.2 通過Watchify監聽文件
變化 88
6.6 使用多個打包文件 90
6.7 Node方式 92
6.7.1 模塊解析方案和NODE_PATH
環境變量 93
6.7.2 依賴管理 95
6.8 定義瀏覽器指定模塊 96
6.9 用Transforms擴展Browserify 97
6.9.1 brfs 97
6.9.2 folderify 98
6.9.3 bulkify 98
6.9.4 Browserify-Shim 99
6.10 小結 100
6.11 相關資源 100
第7章 Knockout 101
7.1 View、Model與View Model 102
7.1.1 菜譜列錶 103
7.1.2 菜譜詳情 106
7.2 綁定視圖模型到DOM 108
7.3 視圖模型與錶單 109
7.3.1 切換到“編輯”模式 109
7.3.2 更改菜譜的標題 112
7.3.3 更改菜譜的Serving與
Cooking Time 112
7.3.4 添加與刪除食材 114
7.3.5 操作步驟 118
7.3.6 引文 119
7.4 自定義組件 120
7.4.1 input-list組件的視圖模型 120
7.4.2 input-list模闆 121
7.4.3 注冊input-list組件 123
7.5 Subscribable: 簡單的消息傳遞 124
7.6 小結 126
7.7 相關資源 127
第8章 AngularJS 128
8.1 聲明式Web編程 128
8.1.1 命令式編程 128
8.1.2 聲明式編程 129
8.2 Module:創建鬆散耦閤程序的基石 130
8.3 指令:DOM的抽象 132
8.4 加入邏輯 134
8.4.1 Scope與原型繼承 134
8.4.2 用Controller操作Scope 135
8.5 通過Service與依賴注入(DI)
實現鬆散耦閤 138
8.5.1 依賴注入 138
8.5.2 簡單的Controller與復雜的
Service 139
8.6 創建路由 142
8.6.1 路由參數 143
8.6.2 路由的Resolve 144
8.7 創建復雜錶單 145
8.7.1 錶單驗證 146
8.7.2 條件邏輯 150
8.7.3 列錶 151
8.8 小結 153
8.9 相關資源 154
第9章 Kraken 155
9.1 環境感知的配置 156
9.2 注冊基於配置的中間件 162
9.3 結構化路由注冊 165
9.3.1 索引配置 165
9.3.2 目錄配置 166
9.3.3 路由配置 167
9.4 Dust模闆 169
9.4.1 上下文及引用 169
9.4.2 片段 171
9.4.3 迭代 172
9.4.4 條件句 173
9.4.5 局部模闆 173
9.4.6 塊 174
9.4.7 過濾器 175
9.4.8 上下文輔助器 176
9.4.9 Dust輔助器 182
9.4.10 使用Kraken 186
9.5 小結 200
9.6 相關資源 200
第10章 Mach 202
10.1 章節例子 202
10.2 安裝 203
10.3 Mach - Web服務 203
10.3.1 HTTP路由 205
10.3.2 建立連接 210
10.3.3 公共的中間件 212
10.3.4 路由重寫 226
10.3.5 主機映射 228
10.3.6 自定義中間件 232
10.4 Mach-HTTP客戶端 234
10.5 Mach - HTTP代理 236
10.6 小結 239
第11章 Mongoose> 240
11.1 MongoDB的基本概念 240
11.2 Mongoose的一個簡單示例 243
11.2.1 針對JSON數據創建一個
Mongoose模式 243
11.2.2 使用Mongoose導入數據 244
11.2.3 通過Mongoose查詢數據 247
11.3 使用結構(Schemas) 248
11.3.1 數據類型 248
11.3.2 嵌套結構 250
11.3.3 默認屬性值 250
11.3.4 必要屬性 251
11.3.5 輔助索引 251
11.3.6 結構校驗 252
11.3.7 結構引用 255
11.3.8 結構中間件 258
11.4 使用模型和文檔 259
11.4.1 文檔實例方法 262
11.4.2 文檔虛擬 263
11.4.3 靜態模型方法 265
11.5 使用查詢 266
11.5.1 Model.find() 266
11.5.2 使用查詢運算符查找文檔 272
11.6 小結 278
第12章 Knex和Bookshelf 279
12.1 Knex 279
12.1.1 安裝命令行工具 280
12.1.2 把Knex添加到你的項目 280
12.1.3 配置Knex 280
12.1.4 SQL查詢構建器 281
12.1.5 遷移腳本 287
12.1.6 種子腳本 291
12.2 Bookshelf 291
12.2.1 什麼是對象映射關係? 292
12.2.2 創建Bookshelf模型 292
12.2.3 關係 299
12.3 小結 306
12.4 相關資源 307
第13章 Faye 308
13.1 HTTP、Bayeux和WebSocket 308
13.1.1 WebSocket 310
13.1.2 Bayeux協議 310
13.2 開始使用Faye 312
13.3 發布/訂閱消息係統 313
13.4 小結 318
13.5 相關資源 318
第14章 Q 319
14.1 時間就是一切 319
14.2 Promise對比迴調函數 322
14.3 Q的Promise 324
14.3.1 Deferreds 和 Promises 324
14.3.2 值和錯誤 328
14.3.3 報告進度 333
14.3.4 終點 336
14.4 控製流 338
14.4.1 順序流 338
14.4.2 平行流 339
14.4.3 管道流 341
14.5 小結 342
14.6 相關資源 343
第15章 Async.js 344
15.1 順序流 345
15.2 並行流 346
15.3 管綫流 348
15.4 循環流 352
15.4.1 為真則循環執行 352
15.4.2 為假則循環執行 354
15.4.3 循環重試 355
15.4.4 無限循環 357
15.5 批處理流 358
15.5.1 異步隊列 358
15.5.2 異步負載 359
15.6 小結 361
第16章 Underscore和Lodash 362
16.1 安裝及用法 363
16.2 聚閤和索引 364
16.2.1 countBy() 364
16.2.2 groupBy() 365
16.2.3 indexBy() 366
16.3 選擇 367
16.3.1 從集閤中選擇數據 367
16.3.2 從對象中選擇數據 369
16.4 鏈式調用 373
16.5 函數計時 375
16.5.1 defer() 375
16.5.2 debounce() 377
16.5.3 throttle() 378
16.6 模闆 380
16.6.1 模闆內的循環及其他
JavaScript代碼 381
16.6.2 書寫不加鰐魚標記的代碼 382
16.6.3 從模闆中獲取數據對象 383
16.6.4 默認模闆數據 384
16.7 小結 385
16.8 相關資源 386
JavaScript開發框架權威指南 epub pdf mobi txt 電子書 下載 2024
JavaScript開發框架權威指南 下載 epub mobi pdf txt 電子書