《前端架構師:基礎建設與架構設計思想》是2022年8月電子工業出版社出版的圖書,作者是侯策。
基本介紹
- 中文名:前端架構師:基礎建設與架構設計思想
- 作者:侯策
- 出版社:電子工業出版社
- 出版時間:2022年8月
- 頁數:376 頁
- 定價:108 元
- 開本:16 開
- ISBN:9787121439827
內容簡介,圖書目錄,作者簡介,
內容簡介
快速發展的紅利、優勝劣汰的挑戰、與生俱來的混亂、同混亂抗衡的規範……這些都是前端從業者無法逃避的現狀。有人說,做好業務支撐是活在當下,而做好技術基建是活好未來。當業務量到達一定量級時,成為“規範制定者”,成為“思考者”,像“架構師”一樣思考問題,才能最終成為“優勝者”。
《前端架構師:基礎建設與架構設計思想》內容不是簡單的思維模式輸出,不是純粹“陽春白雪”的理論,也不是社區搜尋即得的Webpack配置羅列和原理複述,而是從項目痛點中提取出的基礎建設的意義,以及從個人發展瓶頸中總結出的工程化架構和底層設計原理。本書不僅能幫助開發者夯實基礎,還能為開發者實現技術進階提供幫助和啟發。
圖書目錄
第一部分 前端工程化管理工具
01 安裝機制及企業級部署私服原理 2
npm內部機制與核心原理 2
npm不完全指南 6
npm多源鏡像和企業級部署私服原理 9
總結 11
02 Yarn安裝理念及依賴管理困境破解 12
Yarn的安裝機制和背後思想 14
破解依賴管理困境 17
總結 21
03 CI環境下的npm最佳化及工程化問題解析 22
CI環境下的npm最佳化 22
更多工程化相關問題解析 23
最佳實操建議 30
總結 31
04 主流構建工具的設計考量 32
從Tooling.Report中,我們能學到什麼 32
總結 36
05 Vite實現:源碼分析與工程構建 37
Vite的“橫空出世” 37
Vite實現原理解讀 38
總結 50
第二部分 現代化前端開發和架構生態
06 談談core-js及polyfill理念 52
core-js工程一覽 52
如何復用一個polyfill 54
尋找最佳的polyfill方案 59
總結 62
07 梳理混亂的Babel,拒絕編譯報錯 63
Babel是什麼 63
Babel Monorepo架構包解析 64
Babel工程生態架構設計和分層理念 75
總結 78
08 前端工具鏈:統一標準化的babel-preset 79
從公共庫處理的問題,談如何做好“掃雷人” 79
套用項目構建和公共庫構建的差異 81
一個企業級公共庫的設計原則 81
制定一個統一標準化的babel-preset 82
總結 91
09 從0到1構建一個符合標準的公共庫 92
實戰打造一個公共庫 92
打造公共庫,支持script標籤引入代碼96
打造公共庫,支持Node.js環境 100
從開源庫總結生態設計 103
總結 104
10 代碼拆分與按需載入 105
代碼拆分與按需載入的套用場景 105
代碼拆分與按需載入技術的實現 106
Webpack賦能代碼拆分和按需載入 113
總結 119
11 Tree Shaking:移除JavaScript上下文中的未引用代碼 120
Tree Shaking必會理論 120
前端工程化生態和Tree Shaking實踐 124
總結 131
12 理解AST實現和編譯原理 132
AST基礎知識 132
AST實戰:實現一個簡易Tree Shaking腳本 136
總結 141
13 工程化思維:套用主題切換 142
設計一個主題切換工程架構 142
主題色切換架構實現 145
總結 150
14 解析Webpack源碼,實現工具構建 151
Webpack的初心和奧秘 151
手動實現打包器 156
總結 160
15 跨端解析小程式多端方案 161
小程式多端方案概覽 161
小程式多端——編譯時方案 162
小程式多端——運行時方案 164
小程式多端——類React風格的編譯時和運行時結合方案166
小程式多端方案的最佳化 176
總結 178
16 從移動端跨平台到Flutter的技術變革 179
移動端跨平台技術原理和變遷 179
Flutter新貴背後的技術變革 188
總結 194
第三部分 核心框架原理與代碼設計模式
17 axios:封裝一個結構清晰的Fetch庫 196
設計請求庫需要考慮哪些問題 196
axios設計之美 199
總結 206
18 對比Koa和Redux:解析前端中間件 207
以Koa為代表的Node.js中間件設計 207
對比Express,再談Koa中間件 210
Redux中間件設計和實現213
利用中間件思想,實現一個中間件化的Fetch庫215
總結 218
19 軟體開發靈活性和高定製性 219
設計模式 219
函式式思想套用 223
總結 227
20 理解前端中的面向對象思想 228
實現new沒有那么容易 228
如何優雅地實現繼承 230
jQuery中的面向對象思想 234
類繼承和原型繼承的區別 236
總結 237
21 利用JavaScript實現經典數據結構 238
數據結構簡介 238
堆疊和佇列 239
鍊表(單向鍊表和雙向鍊表) 241
樹 247
圖 251
總結 255
22 剖析前端數據結構的套用場景 256
堆疊和佇列的套用 256
鍊表的套用 257
樹的套用 260
總結 263
第四部分 前端架構設計實戰
23 npm scripts:打造一體化構建和部署流程 266
npm scripts是什麼 266
npm scripts原理 267
npm scripts使用技巧 269
打造一個lucas-scripts 270
總結 276
24 自動化代碼檢查:剖析Lint工具 277
自動化工具 277
lucas-scripts中的Lint配置最佳實踐 281
工具背後的技術原理和設計 283
總結 285
25 前端+移動端離線包方案設計 286
從流程圖分析hybrid性能痛點 286
相應最佳化策略 287
離線包方案 289
方案持續最佳化 293
總結 294
26 設計一個“萬能”的項目腳手架 295
命令行工具的原理和實現 295
從命令行到萬能腳手架 304
總結 306
第五部分 前端全鏈路——Node.js全棧開發
27 同構渲染架構:實現SSR套用 308
實現一個簡易的SSR套用 308
SSR套用中容易忽略的細節 312
總結 317
28 性能守衛系統設計:完善CI/CD流程 318
性能守衛理論基礎 318
Lighthouse原理介紹319
性能守衛系統Perf-patronus 322
總結 328
29 打造網關:改造企業BFF方案 329
BFF網關介紹和優缺點梳理 329
打造BFF網關需要考慮的問題 330
實現一個lucas-gateway 333
總結 340
30 實現高可用:Puppeteer實戰 341
Puppeteer簡介和原理 341
Puppeteer在SSR中的套用 342
Puppeteer在UI測試中的套用 345
Puppeteer結合Lighthouse的套用場景 345
通過Puppeteer實現海報Node.js服務 347
總結 353
作者簡介
侯策
就職於某內容社區類網際網路上市公司,具有多年海內外工作經驗,曾先後就職於法國ENGIE集團、Google、百度等知名企業。
擅長前端工程化體系搭建及基礎建設架構設計。深入了解前端各類技術框架和相關技術棧,具有豐富的高流量產品穩定性建設及性能和用戶體驗最佳化經驗,在業務提效和質量保障方面亦有深厚積累,在跨端開發(包括小程式矩陣開發)、富文本編輯器、Node.js、React等技術方向有較強的業內影響力。在技術氛圍打造、團隊成員培養、技術體系建設、新技術落地、難點攻堅、歷史包袱重構等方面均有豐富的實踐經歷。
著有《React狀態管理與同構實踐》《前端開發核心知識進階:從夯實基礎到突破瓶頸》等多部技術圖書。