编辑推荐
前端架构是一系列工具和流程的集合,旨在提升前端代码质量,并实现高效、可持续的工作流。对于大型Web项目,前端架构师和软件架构师同样不可或缺。
《前端架构设计》作者通过RedHat公司真实案例分析以及以往经验积累的实用技巧,系统总结了前端架构的四个核心,详细展示了新的前端开发准则,将Web开发提升到了一个新高度。
前端架构四个核心:
●代码——如何实现系统架构中的HTML、CSS和JavaScript
●流程——构建高效并且防止出错的工作流所需要的工具和流程
●测试——为网站搭建稳固基础
●文档——规划好系统设计蓝图
前端架构师职责:
●体系设计——清晰描绘产品和代码的最终形态
●工作规划——制定完整开发工作流
●监督跟进——保证项目高效率完成内容简介
《前端架构设计》展示了一名成熟的前端架构师对前端开发全面而深刻的理解。作者结合自己在RedHat公司的项目实战经历,探讨了前端架构原则和前端架构的核心内容,包括工作流程、测试流程和文档记录,以及作为前端架构师所要承担的具体开发工作,包括HTML、JavaScript和CSS等。作者简介
【作者介绍】
MicahGodbolt,前端架构师,作家,播客播主,世界ji开源大会的培训师和演讲师。他在个人博客(https://micahgodbolt.com)中经常大力推广前端架构、Sass、视觉还原测试和基于模式的设计方法。他出生于太平洋西北地区,目前和妻子以及两个孩子定居于波特兰的郊区。
【译者介绍】
潘泰燊
毕业于广东外语外贸大学,曾就职于腾讯、百度等互联网公司,参与过腾讯QQ空间、百度地图等海量数据业务的Web开发工作,现就职于富途网络。
张鹏
硕士毕业于中山大学,曾就职于百度、腾讯等知名互联网公司,参与过基于LNMP架构的亿级别互联网应用的设计与实现,目前从事NodeJS与前端开发。
许金泉
毕业于深圳大学,毕业后加入百度FEX,曾主导UEditor、百度国际化浏览器等前端开发工作,现就职于腾讯云。
【审校介绍】
李弦
华为2012实验室UCD交互设计师,MonashUniversity交互设计硕士,前新东方英语教师,广东外语外贸大学英语专业八级。
目录
前言xi
第一部分 引言
第 1章前端架构原则 7
第 2章Alpha项目 11
2.1 慢而有力的开端 11
2.2 全副武装 12
第 3章前端架构的核心 15
3.1 围绕四个核心工作 15
3.2 四个核心的含义 16
第二部分 代码核心
第 4章HTML 19
4.1 过去处理标记的方法 19
4.1.1 程序式标记:自动化程度100%,可控程度0% 19
4.1.2 静态标记:自动化程度0%,可控程度100% 20
4.2 平衡可控性和自动化 21
4.3 这一切背后的设计系统 22
4.4 模块化CSS理论的多面性 22
4.4.1 OOCSS方法 23
4.4.2 SMACSS方法 23
4.4.3 BEM方法 24
4.5 选择适合的方案 25
第 5章CSS 27
5.1 特性之争与继承之痛 28
5.2 一种现代的、模块化的方法 30
5.3 其他有助益的原则 32
5.3.1 单一职责原则 32
5.3.2 单一样式来源 33
5.3.3 组件修饰符 34
5.4 小结 35
第 6章JavaScript 37
6.1 选择框架 37
6.2 维护整洁的JavaScript代码 38
6.2.1 保持代码整洁 38
6.2.2 创造可复用的函数 38
6.3 小结 40
第 7章RedHat代码 41
7.1 过多的依赖 41
7.2 严重的位置依赖问题 42
7.3 设计分解 42
7.4 组件分类 43
7.5 BB鸟规则 44
7.6 编写你自己的规则 44
7.7 每个标签指定唯一的选择器 46
7.7.1 单一责任原则 46
7.7.2 样式只有单一的来源 47
7.7.3 可选的修饰符 47
7.7.4 可选的上下文 50
7.8 语义化的网格 53
第三部分 流程核心
第 8章工作流 57
8.1 过去的开发工作流 57
8.2 现代的开发工作流 58
8.2.1 需求 58
8.2.2 原型设计 58
8.2.3 程序开发 58
8.3 前端工作流 59
8.3.1 必要的工具 59
8.3.2 本地部署 59
8.3.3 编写用户故事 60
8.4 开发 61
8.5 发布 62
8.6 提交编译后的资源 62
8.7 持续集成的服务器 63
8.7.1 标签分支 64
8.7.2 究竟为什么要这么做 64
8.8 发布渠道 64
第 9章任务处理器 67
9.1 在任务处理器中完成一切 68
9.2 在项目中使用任务处理器 69
9.3 有明显的优胜者吗 71
第 10章RedHat流程 73
10.1 征服最后一英里 73
10.2 模式驱动的设计系统 75
第四部分 测试核心
第 11章单元测试 87
11.1 单元 87
11.1.1 更多重用 88
11.1.2 更好的测试 88
11.2 测试驱动的开发 88
11.3 一个测试驱动的例子 89
11.4 测试覆盖率要多大才足够 90
11.4.1 解决分歧点 90
11.4.2 从测试覆盖率开始 90
第 12章性能测试 91
12.1 制定性能预算 91
12.1.1 竞争基线 92
12.1.2 平均基准 92
12.2 原始指标 93
12.2.1 页面大小 93
12.2.2 HTTP请求次数 94
12.3 计时度量 94
12.4 混合度量标准 95
12.4.1 PageSpeed分数 95
12.4.2 SpeedIndex指标 95
12.5 设置性能测试 95
12.5.1 GruntPageSpeed插件 96
12.5.2 GruntPerfbuget插件 96
12.6 小结 97
第 13章视觉还原测试 99
13.1 常见的质疑 99
13.1.1 不了解情况的开发者 100
13.1.2 不一致的设计 100
13.1.3 举棋不定的决策者 100
13.2 一个经过测试的解决方案 101
13.3 视觉还原测试的多面性 101
第 14章RedHat测试方法 103
14.1 实践视觉还原测试 103
14.1.1 测试工具集 103
14.1.2 设置Grunt 104
14.1.3 测试文件 104
14.1.4 对比 105
14.1.5 运行全部测试用例 106
14.1.6 如何应对测试失败 107
14.1.7 从失败到成功 107
14.1.8 修改代码以适应需求 108
14.1.9 将基准图片放在组件目录里 108
14.1.10 独立运行每个组件的测试集 109
14.1.11 测试的可扩展性 110
14.2 小结 111
第五部分 文档核心
第 15章样式文档 117
15.1 配置Hologram 117
15.1.1 Hologram的文档注释块 119
15.1.2 Hologram编译流程 120
15.1.3 Hologram小结 121
15.2 SassDoc 121
15.2.1 安装SassDoc 121
15.2.2 使用SassDoc 122
15.2.3 探索SassDoc 123
15.2.4 深入了解SassDoc 124
15.2.5 内部依赖 125
15.3 小结 127
第 16章图形库 129
16.1 何为PatternLab 129
16.2 运行PatternLab 131
16.3 首页模板 133
16.4 首变量 134
16.5 原子 135
16.6 发挥原子的作用 135
第 17章RedHat文档 137
17.1 阶段1:静态的样式文档 137
17.2 阶段2:重写PatternLab 139
17.3 阶段3:分拆模式库和样式文档 142
17.4 阶段4:创建统一的渲染引擎 143
17.5 阶段5:自动创建新模式 144
第 18章总结 147
作者介绍 149
封面介绍 149