JavaScript開發框架權威指南 (JavaScript Frameworks for Modern Web Dev) JavaScript开发框架权威指南

安布勒 (Tim Ambler), 克勞德 (Nicholas Cloud)

買這商品的人也買了...

商品描述

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的生態系統包括庫、框架以及工具都在快速地發展且日益龐大。程序員學習的需求和麵臨的挑戰也相應地增加。

作者簡介

im 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章Browser ify 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 ind exBy() 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相關資源386a