商品详情
书名:前端架构师:基础建设与架构设计思想
定价:108.0
ISBN:9787121439827
作者:侯策
版次:*1版
出版时间:2022-08
内容提要:
快速发展的红利、优胜劣汰的挑战、与生俱来的混乱、同混乱抗衡的规范……这些都是前端从业者无法逃避的现状。有人说,做好业务支撑是活在当下,而做好技术基建是活好未来。当业务量到达一定量级时,成为“规范制定者”,成为“思考者”,像“架构师”一样思考问题,才能*终成为“优胜者”。本书内容不是简单的思维模式输出,不是纯粹“阳春白雪”的理论,也不是社区搜索即得的 Webpack配置罗列和原理复述,而是从项目痛点中提取出的基础建设的意义,以及从个人发展瓶颈中总结出的工程化架构和底层设计原理。本书不仅能帮助*发者夯实基础,还能为*发者实现技术进阶提供帮助和启发。
作者简介:
侯策,就职于某内容社区类互联网上市公司,具有多年海内外工作经验,曾先后就职于法国ENGIE集团、Google、百度等知名企业。擅长前端工程化体系搭建及基础建设架构设计。深入了解前端各类技术框架和相关技术栈,具有丰富的高流量产品稳定性建设及性能和用户体验优化经验,在业务提效和质量保障方面亦有深厚积累,在跨端开发(包括小程序矩阵开发)、富文本编辑器、Node.js、React等技术方向有较强的业内影响力。在技术氛围打造、团队成员培养、技术体系建设、新技术落地、难点攻坚、历史包袱重构等方面均有丰富的实践经历。著有《React状态管理与同构实践》《前端开发核心知识进阶:从夯实基础到突破瓶颈》等多部技术图书。可通过知乎社区联系作者:Lucas HC
目录:
目 录
*一部分 前端工程化管理工具
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
定价:108.0
ISBN:9787121439827
作者:侯策
版次:*1版
出版时间:2022-08
内容提要:
快速发展的红利、优胜劣汰的挑战、与生俱来的混乱、同混乱抗衡的规范……这些都是前端从业者无法逃避的现状。有人说,做好业务支撑是活在当下,而做好技术基建是活好未来。当业务量到达一定量级时,成为“规范制定者”,成为“思考者”,像“架构师”一样思考问题,才能*终成为“优胜者”。本书内容不是简单的思维模式输出,不是纯粹“阳春白雪”的理论,也不是社区搜索即得的 Webpack配置罗列和原理复述,而是从项目痛点中提取出的基础建设的意义,以及从个人发展瓶颈中总结出的工程化架构和底层设计原理。本书不仅能帮助*发者夯实基础,还能为*发者实现技术进阶提供帮助和启发。
作者简介:
侯策,就职于某内容社区类互联网上市公司,具有多年海内外工作经验,曾先后就职于法国ENGIE集团、Google、百度等知名企业。擅长前端工程化体系搭建及基础建设架构设计。深入了解前端各类技术框架和相关技术栈,具有丰富的高流量产品稳定性建设及性能和用户体验优化经验,在业务提效和质量保障方面亦有深厚积累,在跨端开发(包括小程序矩阵开发)、富文本编辑器、Node.js、React等技术方向有较强的业内影响力。在技术氛围打造、团队成员培养、技术体系建设、新技术落地、难点攻坚、历史包袱重构等方面均有丰富的实践经历。著有《React状态管理与同构实践》《前端开发核心知识进阶:从夯实基础到突破瓶颈》等多部技术图书。可通过知乎社区联系作者:Lucas HC
目录:
目 录
*一部分 前端工程化管理工具
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
- 电子工业出版社有限公司
- 电子工业出版社有限公司有赞官方供货商,为客户提供一流的知识产品及服务。
- 扫描二维码,访问我们的微信店铺