《全棧工程師Web開發指南》是2019年3月人民郵電出版社出版的圖書,作者是[意]迪諾·埃斯波西托(Dino Esposito)。
基本介紹
- 中文名:全棧工程師Web開發指南
- 作者:[意]迪諾·埃斯波西托(Dino Esposito)
- 出版時間:2019年3月
- 出版社:人民郵電出版社
- 頁數:324 頁
- ISBN:9787115497451
- 定價:79 元
- 開本:16 開
- 裝幀:平裝
內容簡介,圖書目錄,
內容簡介
本書通過介紹一種實用的、問題驅動的,關注用戶的方法,介紹了規劃、設計和構建動態的Web強有力的方法,給出了目前進行Web開發的一套有效解決方案。本書引導讀者選擇和實現特定的技術,闡釋了重要的用戶體驗主題,並探討了對移動友好的技術和反應式設計技術等內容。除此之外,本書還介紹了ASP.NET MVC、SignalR、Bootstrap、AJAX、JSON和JQuery等技術的相關內容。
通過閱讀本書,讀者將學到如何從DDD方法以及現代的UX設計方法中獲益,進而能夠快速構建出解決當前問題並且有出色用戶體驗的Web解決方案。
圖書目錄
第 一部分 理解業務領域
第 1章 實施全面的領域分析 3
1.1 領域驅動設計前來解困 3
1.1.1 領域驅動設計 3
1.1.2 消除DDD的常見誤解 4
1.2 通用語言 5
1.2.1 創建領域特定術語的辭彙表 5
1.2.2 使業務和代碼保持同步 7
1.3 限界上下文 8
1.3.1 發現限界上下文 8
1.3.2 實現限界上下文 9
1.4 上下文映射 11
1.5 事件風暴 12
1.5.1 擁有無盡的建模空間 13
1.5.2 找出領域中的事件 13
1.5.3 引導討論 13
1.6 小結 13
第 2章 選擇支撐架構 15
2.1 關於業務邏輯的一切 15
2.1.1 研究應用程式邏輯 15
2.1.2 研究領域邏輯 16
2.1.3 探究業務邏輯的模式 17
2.2 使用單個模型 19
2.2.1 探究面向對象領域模型的元素 19
2.2.2 把業務規則放進去 20
2.2.3 發現聚合 22
2.2.4 探究領域服務的角色 23
2.3 實現命令查詢分離 25
2.3.1 套用命令查詢分離原則 26
2.3.2 實現CQRS 28
2.4 基於訊息的方案 30
2.4.1 專屬基礎設施 30
2.4.2 介紹事件溯源 33
2.5 小結 35
第3章 用戶體驗驅動設計 36
3.1 為什麼自上而下方案比自下而上方案更優 36
3.1.1 自下而上方案的基礎 37
3.1.2 規劃自上而下方案 39
3.2 從架構的角度來看用戶體驗 40
3.2.1 用戶體驗不是用戶界面 40
3.2.2 三步解釋用戶體驗驅動設計 42
3.3 為什麼用戶體驗驅動設計幾乎有利於每個人 46
3.4 小結 47
第4章 Web解決方案的架構選項 49
4.1 評估可用的Web解決方案 49
4.1.1 決定最佳框架 49
4.1.2 規劃解決方案 50
4.2 研究ASP.NET Core 1.0的角色 51
4.2.1 把ASP.NET看作起點 51
4.2.2 研究ASP.NET Core 1.0里的架構依賴 52
4.2.3 探究選擇ASP.NET Core 1.0的原因 53
4.3 決定是否應該使用ASP.NET Web Forms 55
4.3.1 研究一個常見的場景 55
4.3.2 ASP.NET Web Forms初探 55
4.3.3 Web Forms仍有好的一面 56
4.3.4 為什麼應該遠離Web Forms 56
4.4 決定是否應該使用ASP.NET MVC 57
4.4.1 ASP.NET MVC初探 58
4.4.2 ASP.NET MVC的優點 58
4.4.3 ASP.NET MVC的弱點 59
4.5 研究ASP.NET Web API的角色 59
4.5.1 WCF轉到Web API 60
4.5.2 比較ASP.NET Web API和ASP.NET MVC 60
4.5.3 聊聊REST 62
4.5.4 在ASP.NET Core 1.0里使用Web API 62
4.6 單頁應用程式 63
4.6.1 構建SPA 64
4.6.2 混合SPA 64
4.6.3 SPA的弱點 64
4.7 小結 65
第5章 分層架構 66
5.1 超越經典的三層系統 66
5.1.1 目前使用的三層架構 67
5.1.2 灰色地帶 67
5.2 表現層 68
5.2.1 用戶體驗 68
5.2.2 輸入模型 69
5.2.3 視圖模型 69
5.3 應用程式層 70
5.3.1 系統後端的入口點 70
5.3.2 業務流程的編排 71
5.4 領域層 71
5.4.1 神秘的領域模型 72
5.4.2 同樣神秘的領域服務概念 72
5.4.3 更務實的領域建模觀點 73
5.5 基礎設施層 73
5.5.1 當前狀態存儲 73
5.5.2 事件存儲 74
5.5.3 快取層 75
5.5.4 外部服務 75
5.6 小結 75
第二部分 實現常見功能
第6章 ASP.NET的現狀 79
6.1 Web的風格 79
6.1.1 Web原本可以不同 79
6.1.2 經典Web是贏家 80
6.2 ASP.NET是功能完整的 80
6.2.1 不必添加更多功能 81
6.2.2 它的潛能得到充分挖掘,還是說這個軟體已遭廢棄 81
6.3 ASP.NET Core 1.0沒有新的功能 81
6.3.1 這是關於新的運行時 82
6.3.2 這是關於業務模型 82
6.3.3 這是關於開發模型 82
6.4 ASP.NET的現狀是什麼 82
第7章 ASP.NET Core 1.0的來龍去脈及技術細節 84
7.1 ASP.NET Core的背景 84
7.1.1 大記憶體占用的代價 85
7.1.2 把雲重新看作殺手鐧 85
7.1.3 不同的編程模型的必要性 85
7.1.4 日常工作的影響 86
7.2 ASP.NET Core運行時概覽 86
7.2.1 DNX託管環境 87
7.2.2 在DNX中託管Web應用程式 88
7.2.3 ASP.NET Core HTTP通道 89
7.3 ASP.NET開發者的ASP.NET Core使用指南 90
7.3.1 創建一個新的項目 91
7.3.2 應用程式啟動 94
7.3.3 應用程式設定 96
7.3.4 驗證 98
7.3.5 Web編程的其他方面 99
7.4 小結 101
第8章 ASP.NET MVC的精髓 103
8.1 路由傳入請求 103
8.1.1 模擬ASP.NET MVC運行時 104
8.1.2 探索URL路由HTTP模組 106
8.1.3 使用應用程式路由 107
8.2 探索控制器類 113
8.2.1 了解控制器的各個方面 113
8.2.2 編寫控制器類 115
8.3 處理輸入數據 119
8.3.1 手動參數綁定 119
8.3.2 模型綁定 120
8.4 產生操作結果 124
8.4.1 包裝結果 124
8.4.2 返回HTML標記內容 126
8.4.3 返回JSON內容 132
8.5 小結 133
第9章 Bootstrap的精髓 135
9.1 Bootstrap概覽 135
9.1.1 LESS和Bootstrap基礎 135
9.1.2 設定Bootstrap 138
9.1.3 透析Bootstrap 138
9.2 反應式布局 139
9.2.1 格線系統 139
9.2.2 基於螢幕大小的渲染 141
9.3 現今Web元素的分類體系 145
9.3.1 重塑基本HTML元素的樣式 145
9.3.2 重塑列表HTML元素的樣式 153
9.3.3 了解更高級的組件 155
9.4 Bootstrap擴展 161
9.4.1 自動完成 161
9.4.2 日期選擇 166
9.4.3 自定義組件 168
9.5 小結 172
第 10章 ASP.NET MVC項目的組織方式 173
10.1 規劃項目解決方案 173
10.1.1 把項目映射到分層架構模式 173
10.1.2 應用程式啟動 175
10.1.3 研究應用程式服務 179
10.1.4 加入其他資產 181
10.1.5 創建表現布局 182
10.2 更有效地提供資源 184
10.2.1 打包 185
10.2.2 使用簡化 189
10.3 研究其他方面 190
10.3.1 研究錯誤處理 190
10.3.2 配置用戶驗證 193
10.4 小結 197
第 11章 展示數據 198
11.1 組織HTML視圖 198
11.1.1 探索視圖模型 198
11.1.2 研究頁面布局 201
11.1.3 展示視圖元素 204
11.2 顯示一組數據項 207
11.2.1 創建格線視圖 208
11.2.2 添加頁面功能 212
11.2.3 向頁面元素添加滾動功能 216
11.3 添加詳細視圖 219
11.3.1 彈框視圖 220
11.3.2 向下追溯視圖 222
11.4 小結 224
第 12章 編輯數據 225
12.1 用於登錄頁面的通用表單 225
12.1.1 展示表單 225
12.1.2 處理提交數據 227
12.2 輸入表單 229
12.2.1 Post-Redirect-Get模式 229
12.2.2 表單驗證 231
12.2.3 模態輸入表單 239
12.3 改善用戶體驗的小竅門 247
12.3.1 使用日期選擇器是挺好的,但…… 247
12.3.2 使用自動完成而不是冗長的下拉列表 249
12.3.3 大型輸入表單的其他建議 251
12.4 小結 252
第 13章 持久化和建模 253
13.1 研究不同類型的模型 253
13.1.1 持久化模型 253
13.1.2 領域模型 254
13.1.3 輸入模型 256
13.1.4 視圖模型 256
13.2 設計持久層 257
13.2.1 使用隱式的遺留數據模型 258
13.2.2 使用Entity Framework 259
13.2.3 倉庫模式 262
13.3 多樣化持久化 264
13.3.1 多樣化持久化的例子 264
13.3.2 多樣化持久化的代價 265
13.4 小結 267
第三部分 分析用戶體驗
第 14章 創建更具互動性的視圖 271
14.1 暴露JSON內容 271
14.1.1 創建JSON端點 272
14.1.2 協商內容 274
14.1.3 解決跨源問題 275
14.2 設計Web API 279
14.2.1 ASP.NET Web API的目的 279
14.2.2 在ASP.NET MVC環境中的Web API 279
14.2.3 保護獨立的Web API 280
14.3 拉取內容 282
14.3.1 Ajax核心 282
14.3.2 jQuery工具 285
14.3.3 把數據綁到當前DOM 287
14.4 把內容推到客戶端 290
14.4.1 ASP.NET SignalR初探 290
14.4.2 監視遠程任務 291
14.4.3 ASP.NET SignalR的其他場景 294
14.5 小結 296
第 15章 反應式設計的優缺點 297
15.1 反應式Web設計的基礎 297
15.1.1 RWD簡史 297
15.1.2 CSS媒體查詢 298
15.1.3 RWD和設備獨立性 302
15.2 使RWD適配非桌面設備 303
15.2.1 處理圖像 304
15.2.2 處理字型 306
15.2.3 處理朝向 307
15.3 小結 308
第 16章 讓網站對移動友好 309
16.1 讓視圖適配實際設備 309
16.1.1 最適合移動場景的HTML5 309
16.1.2 特性檢測 312
16.1.3 客戶端設備檢測 313
16.1.4 展望未來 316
16.2 設備友好的圖像 316
16.2.1 ImageEngine平台 316
16.2.2 自動調整圖像大小 317
16.3 提供設備友好的視圖 318
16.3.1 提供移動內容的最佳方式是什麼 318
16.3.2 伺服器端檢測 319
16.4 小結 324