注冊(cè) | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁出版圖書科學(xué)技術(shù)計(jì)算機(jī)/網(wǎng)絡(luò)軟件工程及軟件方法學(xué)Flux架構(gòu)

Flux架構(gòu)

Flux架構(gòu)

定 價(jià):¥89.00

作 者: [加] Adam Boduch(亞當(dāng) 博達(dá)哈) 著;段金辰 等 譯
出版社: 電子工業(yè)出版社
叢編項(xiàng):
標(biāo) 簽: 計(jì)算機(jī)?網(wǎng)絡(luò) 軟件工程及軟件方法學(xué)

ISBN: 9787121316005 出版時(shí)間: 2017-06-01 包裝: 平裝
開本: 16開 頁數(shù): 328 字?jǐn)?shù):  

內(nèi)容簡(jiǎn)介

  Flux 是一套架構(gòu)模型,將Web 應(yīng)用的各個(gè)主要功能以組件的形式進(jìn)行劃分,并進(jìn)一步劃分子組件。而各組件又以動(dòng)作、存儲(chǔ)器和視圖來進(jìn)行架構(gòu)分層。整體采用單向數(shù)據(jù)流的形式進(jìn)行事件的響應(yīng),各組件間也強(qiáng)制按照單向數(shù)據(jù)流進(jìn)行相互影響,直至數(shù)據(jù)流結(jié)束。在本書中,先向大家介紹了Flux 是什么,以及簡(jiǎn)單展示了其基本構(gòu)建模式。然后從動(dòng)作、存儲(chǔ)器、視圖、分發(fā)器等核心概念,更為詳細(xì)地闡述了Flux的架構(gòu)模式。最后,介紹了Flux 庫、測(cè)試工具和其對(duì)其他相關(guān)技術(shù)棧的影響。本書適用于前端開發(fā)者,以及希望對(duì)Flux 架構(gòu)有深入了解的人群。

作者簡(jiǎn)介

  AdamBoduch從事大規(guī)模JavaScript開發(fā)已經(jīng)將近10年。在轉(zhuǎn)行前端之前,他曾使用Python和Linux編寫過幾個(gè)大規(guī)模的云計(jì)算產(chǎn)品。Adam對(duì)復(fù)雜度有一些了解,在真實(shí)世界的軟件系統(tǒng)和應(yīng)對(duì)其擴(kuò)展上的挑戰(zhàn)方面具有實(shí)際經(jīng)驗(yàn)?!∷麑戇^幾本JavaScript的書,包括《JavaScript并發(fā)》(JavaScriptConcurrency),他在研究用戶體驗(yàn)創(chuàng)新和高性能方面充滿熱情?!”緯啥谓鸪?、馬雪琴、李勝、馬飛、孫輝翻譯?!《谓鸪綇氖萝浖_發(fā)大約10年,曾供職于微軟、阿里巴巴等世界知名公司,參與或主持過多項(xiàng)大型軟件系統(tǒng)的架構(gòu)和開發(fā),涉及基礎(chǔ)類庫、云、Web前端、On-premises服務(wù)、App等眾多方向,精通包括JavaScript在內(nèi)的多種編程語言?!●R雪琴,研究生就讀于華中科技大學(xué)通信工程專業(yè),其間有幸接觸到前端、數(shù)據(jù)可視化等方向,并且對(duì)這些技術(shù)感到相見恨晚?,F(xiàn)就職于阿里巴巴集團(tuán)客戶體驗(yàn)事業(yè)群前端開發(fā)團(tuán)隊(duì)。平時(shí)喜歡宅著看書,學(xué)著畫畫,更喜歡去外面走走看看,安靜而不安分?!±顒伲岸碎_發(fā)工程師。就職于阿里巴巴集團(tuán)客戶體驗(yàn)事業(yè)群前端開發(fā)團(tuán)隊(duì),曾在餓了么大前端部門參與實(shí)習(xí),熱衷于追尋前沿技術(shù)。除前端相關(guān)技術(shù)以外,對(duì)游戲開發(fā),Go以及其他后端技術(shù)也有一定了解。平時(shí)的愛好有動(dòng)漫和科幻?!●R飛,阿里巴巴前端工程師,半路出家進(jìn)入了互聯(lián)網(wǎng)行業(yè),熱衷于Web技術(shù),同時(shí)對(duì)工業(yè)控制,ARM嵌入式開發(fā)有一定的研究,喜歡旅行、電子游戲、運(yùn)動(dòng)以及攝影。其微博為@*亞倫?!O輝,現(xiàn)為阿里巴巴的一只“前端攻城獅”,有多年的物聯(lián)網(wǎng)及Web前端開發(fā)經(jīng)驗(yàn)。愛美食、愛攝影,熱愛一切富有創(chuàng)造性的事物。

圖書目錄

目錄
前言 .................................. XIX
1 Flux是什么 .................... 1
Flux是一套模式 ......................... 1
數(shù)據(jù)入口 ............................. 1
狀態(tài)管理 ............................. 2
保持同步更新 ..................... 3
信息架構(gòu) ............................. 4
Flux并不是一個(gè)框架 ................. 4
Flux的設(shè)計(jì)思路問題解決方案 . 5
數(shù)據(jù)流向 ............................. 5
可回溯性 ............................. 7
通知的一致性 ..................... 8
簡(jiǎn)捷的架構(gòu)分層 ................. 9
低耦合渲染 ......................... 9
Flux組件 ................................... 10
動(dòng)作 ................................... 10
分發(fā)器 ............................... 11
存儲(chǔ)器 ............................... 12
視圖 ................................... 12
安裝 Flux軟件包 ...................... 14
小結(jié) ........................................... 16

2 Flux的原則 .................. 17
MV*所面臨的挑戰(zhàn) ................... 17
關(guān)注點(diǎn)分離 ....................... 18
級(jí)聯(lián)更新 ........................... 19
模型更新的職責(zé) ............... 20
單向數(shù)據(jù) ................................... 21
從開始到結(jié)束 ................... 22
無毒無害 ........................... 23
顯式優(yōu)于隱式 ........................... 23
暗藏隱患的更新 ............... 24
集中修改狀態(tài)的地方 ....... 26
太多動(dòng)作? ....................... 26
分層優(yōu)于嵌套 ........................... 27
多組件嵌套 ....................... 27
嵌套深度與副作用 ........... 28
數(shù)據(jù)流和分層 ................... 28
應(yīng)用數(shù)據(jù)和界面狀態(tài) ............... 29
兩個(gè)相同的東西 ............... 29
強(qiáng)耦合轉(zhuǎn)換 ....................... 30
功能中心化 ....................... 31
小結(jié) ........................................... 31
3 搭建骨架架構(gòu) ............... 32
總體組織 ................................... 32
目錄結(jié)構(gòu) ........................... 33
依賴管理 ........................... 33
信息設(shè)計(jì) ................................... 34
用戶不需要了解模型 ....... 34
存儲(chǔ)器映射用戶看到的內(nèi)容 ......................................... 35
和哪些東西協(xié)同工作 ....... 36
在動(dòng)作中注入存儲(chǔ)器 ............... 36
獲取 API數(shù)據(jù) ................... 36
改變 API資源狀態(tài) ........... 42
本地動(dòng)作 ........................... 47
存儲(chǔ)器和功能域 ....................... 50
梳理頂層功能 ................... 50
無關(guān)緊要的 API數(shù)據(jù) ....... 51
構(gòu)造存儲(chǔ)器數(shù)據(jù) ............... 53
模擬視圖 ................................... 53
找尋失去的數(shù)據(jù) ............... 53
定位動(dòng)作 ........................... 54
端到端場(chǎng)景 ............................... 56
動(dòng)作清單 ........................... 56
存儲(chǔ)器清單 ....................... 56
視圖清單 ........................... 57
小結(jié) ........................................... 57
4 創(chuàng)建動(dòng)作 ...................... 58
動(dòng)作的名稱和常量 ................... 58
動(dòng)作命名約定 ................... 58
靜態(tài)動(dòng)作數(shù)據(jù) ................... 59
組織動(dòng)作常量 ................... 62
特性動(dòng)作生成器 ....................... 63
什么時(shí)候需要模塊化 ....... 63
模塊化架構(gòu) ....................... 64
模擬數(shù)據(jù) ................................... 65
模擬已存在的接口 ........... 65
模擬新接口 ....................... 66
替換動(dòng)作生成器 ............... 70
狀態(tài)動(dòng)作生成器 ....................... 71
整合其他系統(tǒng) ................... 72
web socket連接 ................ 73
參數(shù)化動(dòng)作生成器 ................... 76
刪除多余的動(dòng)作 ............... 76
保持動(dòng)作的通用性 ........... 77
創(chuàng)建衍生動(dòng)作 ................... 80
小結(jié) ........................................... 81
5 異步動(dòng)作 ...................... 83
保持 Flux同步 .......................... 83
為什么要同步 ................... 83
壓縮異步行為 ................... 84
異步動(dòng)作語義 ................... 85
創(chuàng)建 API調(diào)用 ........................... 87
API是常見的情況 ............ 87
API調(diào)用和用戶交互 ........ 88
結(jié)合 API調(diào)用 ........................... 92
復(fù)雜的動(dòng)作生成器 ........... 93
組合動(dòng)作生成器 ............... 96
返回 promise ............................. 97
不含 promise的同步 ........ 98
組織異步行為 ................... 99
錯(cuò)誤處理 ......................... 101
小結(jié) ......................................... 103
6 改變 Flux存儲(chǔ)器的狀態(tài) .............................................105
適應(yīng)不斷變化的信息 ............. 105
變化的 API數(shù)據(jù) ............. 105
變化的功能 ..................... 106
受影響的組件 ................. 107
減少重復(fù)的存儲(chǔ)器數(shù)據(jù) ......... 107
通用存儲(chǔ)器數(shù)據(jù) ............. 107
注冊(cè)通用存儲(chǔ)器 ............. 108
結(jié)合通用和專用數(shù)據(jù) ..... 112
處理存儲(chǔ)器的依賴關(guān)系 ......... 116
等待存儲(chǔ)器 ..................... 116
數(shù)據(jù)依賴 ......................... 118
UI依賴 ............................ 119
視圖的更新順序 ..................... 125
存儲(chǔ)器的注冊(cè)順序 ......... 125
視圖渲染的優(yōu)先級(jí)排序 . 125
處理存儲(chǔ)器復(fù)雜度 ................. 126
存儲(chǔ)器太多 ..................... 126
反思功能域 ..................... 126
小結(jié) ......................................... 127
7 視圖信息 .....................128
傳遞視圖數(shù)據(jù) ......................... 128
change事件中的數(shù)據(jù) ..... 128
視圖決定何時(shí)渲染 ......... 132
保持視圖無狀態(tài) ..................... 135
UI狀態(tài)屬于存儲(chǔ)器 ........ 135
不用查詢 DOM ............... 135
視圖的職責(zé) ............................. 136
渲染存儲(chǔ)器數(shù)據(jù) ............. 136
子視圖結(jié)構(gòu) ..................... 137
用戶交互 ......................... 138
在 Flux中使用 ReactJS .......... 138
設(shè)置視圖狀態(tài) ................. 139
組成視圖 ......................... 143
響應(yīng)事件 ......................... 146
路由和動(dòng)作 ..................... 149
小結(jié) ......................................... 154
8 信息的生命周期 ...........155
組件生命周期難題 ................. 155
回收不再使用的資源 ..... 156
隱藏依賴 ......................... 157
內(nèi)存泄漏 ......................... 157
Flux結(jié)構(gòu)是靜態(tài)的 ................. 158
單例模式 ......................... 158
與模型進(jìn)行比較 ............. 161
靜態(tài)視圖 ......................... 161
擴(kuò)展信息 ................................. 165
如何很好地?cái)U(kuò)展 ............. 165
昀小化所需信息 ............. 169
擴(kuò)展的動(dòng)作 ..................... 169
閑置的存儲(chǔ)器 ......................... 170
刪除存儲(chǔ)器數(shù)據(jù) ............. 170
優(yōu)化閑置的存儲(chǔ)器 ......... 173
保持存儲(chǔ)器數(shù)據(jù) ............. 174
小結(jié) ......................................... 182
9 不可變的存儲(chǔ)器 ...........183
放棄隱藏的更新 ..................... 183
如何破壞 Flux架構(gòu) ........ 184
獲取存儲(chǔ)器數(shù)據(jù) ............. 186
一切皆不可變 ................. 187
強(qiáng)制執(zhí)行單向數(shù)據(jù)流 ............. 187
縱橫交錯(cuò)的單向數(shù)據(jù)流 . 188
過多的存儲(chǔ)器? ............. 189
沒有足夠的動(dòng)作 ............. 189
強(qiáng)制不可變性 ................. 190
不可變數(shù)據(jù)的成本 ................. 195
垃圾回收是昂貴的 ......... 196
批量轉(zhuǎn)換 ......................... 196
抵消成本 ......................... 197
使用 Immutable.js ................... 197
不可變列表和映射 ......... 198
不可變的轉(zhuǎn)換 ................. 201
變化檢測(cè) ......................... 204
小結(jié) ......................................... 208
10 實(shí)現(xiàn)分發(fā)器 ................209
抽象分發(fā)器接口 ..................... 209
存儲(chǔ)器的注冊(cè)地 ............. 209
分發(fā)負(fù)載 ......................... 210
依賴關(guān)系的處理 ............. 211
分發(fā)器所面臨的挑戰(zhàn) ............. 212
教育的目的 ..................... 212
單例模式的分發(fā)器 ......... 212
手動(dòng)注冊(cè)存儲(chǔ)器 ............. 213
容易出錯(cuò)的依賴管理 ..... 213
構(gòu)建分發(fā)器模塊 ..................... 214
封裝存儲(chǔ)器的引用 ......... 214
處理依賴 ......................... 215
分發(fā)動(dòng)作 ......................... 217
優(yōu)化存儲(chǔ)器的注冊(cè) ................. 220
基礎(chǔ)存儲(chǔ)器類 ................. 221
一個(gè)動(dòng)作方法 ................. 222
小結(jié) ......................................... 226
11 可替代的視圖組件 .....227
ReactJS是適合 Flux的 .......... 227
ReactJS是單向的 ........... 227
重新渲染數(shù)據(jù)很簡(jiǎn)單 ..... 229
短小精悍的代碼 ............. 229
ReactJS的缺點(diǎn) ....................... 230
虛擬 DOM和內(nèi)存 .......... 230
JSX和標(biāo)記語言 .............. 231
庫鎖定 ............................. 232
使用 jQuery和 Handlebars ..... 232

為什么是 jQuery和 Handlebars ................................... 232
渲染模板 ......................... 233
組合視圖 ......................... 236
事件處理 ......................... 238
使用 VanillaJS ......................... 244
對(duì)可選擇性保持開放 ..... 244
遷移到 React ................... 244
新的技術(shù)熱點(diǎn) ................. 245
小結(jié) ......................................... 245
12 使用 Flux庫 ..............247
實(shí)現(xiàn)核心 Flux組件 ................ 247
自定義分發(fā)器 ................. 247
實(shí)現(xiàn)一個(gè)基本的存儲(chǔ)器 . 248
創(chuàng)建動(dòng)作 ......................... 248
實(shí)現(xiàn)中遇到的痛點(diǎn) ................. 249
分發(fā)異步動(dòng)作 ................. 249
劃分存儲(chǔ)器 ..................... 249
使用 Alt ................................... 250
核心理念 ......................... 250
創(chuàng)建存儲(chǔ)器 ..................... 251
聲明動(dòng)作生成器 ............. 253
監(jiān)聽狀態(tài)變化 ................. 254
視圖渲染以及分發(fā)動(dòng)作 . 255
使用 Redux .............................. 258
核心思想 ......................... 258
狀態(tài)轉(zhuǎn)換器和存儲(chǔ)器 ..... 259
Redux動(dòng)作 ...................... 262
渲染組件和分發(fā)動(dòng)作 ..... 264
小結(jié) ......................................... 269

13 測(cè)試和性能 ................270
你好,Jest ............................... 270
測(cè)試動(dòng)作生成器 ..................... 272
同步函數(shù) ......................... 273
異步函數(shù) ......................... 274
測(cè)試存儲(chǔ)器 ............................. 277
測(cè)試存儲(chǔ)器監(jiān)聽器 ......... 277
測(cè)試初始狀態(tài) ................. 280
性能目標(biāo) ................................. 283
用戶感知的性能 ............. 283
測(cè)量的性能 ..................... 284
性能需求 ......................... 284
分析工具 ................................. 285
異步動(dòng)作 ......................... 285
存儲(chǔ)器內(nèi)存 ..................... 285
CPU占用 ........................ 286
基準(zhǔn)測(cè)試工具 ......................... 286
代碼的基準(zhǔn)測(cè)試 ............. 286
狀態(tài)轉(zhuǎn)換 ......................... 287
小結(jié) ......................................... 290
14 Flux和軟件開發(fā)的生命周期 ....................................291
Flux的開放性解釋 ................. 291
實(shí)現(xiàn)選項(xiàng)一:只是模式 . 292
實(shí)現(xiàn)選項(xiàng)二:使用 Flux庫 .......................................... 292
實(shí)現(xiàn)并使用自己的 Flux . 292
開發(fā)方法論 ............................. 293
在 Flux初期要考慮的事情 .......................................... 293
成熟的 Flux應(yīng)用 ............ 294
從 Flux中獲得的啟示 ............ 294
單向數(shù)據(jù)流 ..................... 295
信息設(shè)計(jì)為王 ................. 295
打包 Flux組件 ........................ 295
完整獨(dú)立的 Flux ............. 296
可安裝的軟件包 ............. 296
可安裝的 Flux組件 ........ 296
小結(jié) ......................................... 304

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) m.ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號(hào) 鄂公網(wǎng)安備 42010302001612號(hào)