同構 JavaScript 應用開發 Building Isomorphic JavaScript Apps: From Concept to Implementation to Real-World Solutions

傑森·史特林貝爾 (Jason Strimpel), 馬克西姆·納吉姆 (Maxime Najim)

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

商品描述

《同構JavaScript應用開發》將向你展示如何構建和維護屬於自己的同構JavaScript應用。適合對同構JavaScript感興趣的Web開發人員。

本書分為三部分,第一部分描繪不同種類的同構JavaScript的輪廓,第二部分介紹關鍵概念,第三部分提供業界同行的解決方案案例。通過閱讀本書,你將瞭解到這種應用架構日益流行的原因,並將其運用於解決關鍵的業務問題,如頁面加載速度和SEO兼容性。

作者簡介

Jason Strimpel
軟件工程師,擁有十餘年Web開發經驗。目前任職於沃爾瑪實驗室,負責支持UI應用的軟件開發。

Maxime Najim
沃爾瑪實驗室軟件架構師,全棧Web開發者。曾任職於Netflix、蘋果和Yahoo!等公司,在創建大型、伸縮性強、可靠的Web應用方面具有豐富經驗。

目錄大綱

前言ix 
第一部分簡介與關鍵概念

第1章為什麼需要同構JavaScript 2 
1.1定義同構JavaScript 3 
1.2評價其他的Web應用架構方案3 
1.2.1狀況的改變3 
1.2.2工程上的關注點4 
1.2. 3可選架構4 
1.3附加說明:何時不使用同構10 
1.4小結11 

第2章同構JavaScript圖譜12 
2.1共享視圖13 
2.1.1共享模板14 
2.1.2共享視圖邏輯14 
2.2共享路由14 
2.3共享模型15 
2.4小結15 

第3章同構JavaScript分類16 
3.1與環境無關的代碼18 
3.2為每個特定環境提供shim 19 
3.3小結20 

第4章超越服務器端的渲染21 
4.1實時Web應用22 
4.1.1同構API 23 
4.1. 2雙向數據同步23 
4.1.3在服務器端進行客戶端仿真23 
4.2小結24 

第二部分構建第一個應用

第5章起步26 
5.1 Node的安裝和運行27
5.1.1從源碼安裝27 
5.1.2與Node REPL交互28 
5.1.3使用npm管理項目28 
5.2建立應用項目29 
5.2.1初始化項目29 
5.2.2安裝應用服務器31 
5.2.3編寫下一代的JavaScript( ES6) 32 
5.2.4將ES6編譯為ES5 34 
5.2.5建立開發流程35 
5.3小結39 

第6章提供第一份HTML文檔40 
6.1提供HTML模板40 
6.2使用路徑參數與查詢參數42 
6.3小結45 

第7章設計應用架構46 
7.1理解問題47 
7.2響應用戶請求47 
7.2.1創建Application類47 
7.2.2創建控制器49 
7.2.3構造控制器實例50 
7.2.4拓展控制器52 
7.2.5改進響應流53 
7.3小結57 

第8章將應用傳輸到客戶端58 
8.1打包應用的客戶端版本58 
8.1.1選擇打包庫58 
8.1.2創建打包任務59 
8.1.3添加客戶端實現61 
8.2響應用戶請求62
8.2.1利用History API 63 
8.2.2響應並調用History API 63 
8.3客戶端路由67 
8.4組織代碼73 
8.5小結75 

第9章創建常用的抽象76 
9.1何時抽象,為什麼需要抽象76 
9.2獲取和設置cookie 77 
9.3重定向請求84 
9.4小結88 

第10章序列化、反序列化和添加事件監聽89 
10.1序列化數據90 
10.2創建控制器實例92 
10.3反序列化數據93 
10.4添加DOM事件處理器94 
10.5驗證rehydration過程96 
10.6小結98 

第11章結束感言99 
11.1生產準備99 
11.2衡量架構99 
11.3小結102 

第三部分現實世界的解決方案

第12章沃爾瑪實驗室的同構React.js方案104 
12.1物種起源104 
12.1. 1問題105 
12.1.2解決方案106 
12.2 React模板與模式106 
12.2.1在服務器端渲染106 
12.2.2在客戶端恢復110 
12.3沃爾瑪採用的方法112
12.4克服挑戰112 
12.4.1首字節時間112 
12.4.2組件渲染優化113 
12.4.3性能提升117 
12.5下一步119 
12.6感謝120 
12.7補充說明120 

第13章全棧Angular 121 
13.1同構JavaScript:Web應用的未來122 
13.2同構Angular 1 122 
13.3 Angular 2服務器端渲染124 
13.3.1服務器端渲染的用例124 
13.3.2 Web應用脫節126 
13.3.3 Angular 2渲染架構127 
13.3.4 Preboot 128 
13.4 Angular Universal 128 
13.5 GetHuman.com 130 
13.6補充說明131 

第14章Brisket 132 
14.1問題132 
14.2兩全其美134 
14.3早期Brisket 135 
14.4成為現實136 
14.5代碼自由136 
14.6跨環境一致的API 139 
14.6.1模型/集合140 
14.6.2視圖生命週期140 
14.6.3子視圖管理141
14.6.4跨環境使用的工具141 
14.7前進之路142 
14.7.1 ClientApp與ServerApp 142 
14.7.2佈局模板142 
14.7.3其他經驗教訓143 
14.8 Brisket的下一步?143 
14.9補充說明144 

第15章Colony案例研究:脫離Node創建同構應用145 
15.1問題145 
15.2模板146 
15.3數據147 
15.4轉譯視圖模型148 
15.5佈局150 
15.6頁面生成器152 
15.7前端SPA 152 
15.8最終架構153 
15.9後續計劃154 

第16章結語155 
16.1設計模式、Flux和同構JavaScript家族155 
16.1.1永遠相信JavaScrip 156 
16.1.2命名與理解157 
關於作者159 
關於封面159