第 0 章 绪论:Web 应用开发周期 1
0.1 Web 应用的生命周期 2
0.2 遗留系统与新架构 3
0.3 技术选型与验证 4
0.4 搭建构建系统 5
0.5 迭代 6
0.6 Web 应用开发步骤7
0.7 小结 9
第 1 部分 准备阶段
第1 章 基础知识12
1.1 搭建开发环境13
1.1.1 基本要素 13
1.1.2 常用效率工具及其在不同操作系统下的安装 14
1.1.3 搭建开发环境22
1.1.4 开发工具 23
1.2 版本控制 27
1.2.1 Git 初入28
1.2.2 Git 工作流 30
1.3 任务拆分 32
1.3.1 一本书的任务拆分 32
1.3.2 一个功能的任务拆分33
1.4 小结 35
第 2 章 最小可行化应用36
2.1 最小可行化产品 37
2.2 最小可行化Web 应用 41
2.2.1 使用Bootstrap 模板 41
2.2.2 完善原型46
2.2.3 简单上线 47
2.3 精益与敏捷软件开发 52
2.3.1 敏捷软件开发 52
2.3.2 精益 56
2.4 小结 58
第 3 章 技术选型与业务.59
3.1 技术选型 61
3.1.1 后端选型 63
3.1.2 数据持久化 67
3.1.3 前端选型:UI 框架 71
3.2 Django 72
3.2.1 Django 简介 72
3.2.2 安装Django74
3.2.3 创建项目77
3.3 从真实世界到代码 83
3.3.1 模型、领域、抽象 84
3.3.2 前后端分离 88
3.4 小结 90
第 4 章 构建系统及其工作流92
4.1 构建流 93
4.1.1 搭建开发环境 96
4.1.2 准备生产环境98
4.2 打造后端构建系统100
4.2.1 使用Fabric 搭建构建系统101
4.2.2 软件包管理107
4.3 小结109
第 2 部分 编码到上线
第5 章 编码112
5.1 创建首页应114
5.1.1 生成首页应用115
5.1.2 编写第一个测试122
5.1.3 使用Selenium 进行功能测试124
5.1.4 如何编写测试128
5.2 创建博客应用134
5.2.1 创建应用与博客管理134
5.2.2 在页面上显示博客141
5.3 数据与Web 应用开发150
5.3.1 管理数据151
5.3.2 显示数据151
5.4 小结152
第 6 章 上线155
6.1 手动部署156
6.1.1 操作系统与服务器软件157
6.1.2 第一次部署应用162
6.1.3 配置管理176
6.2 自动化部署178
6.2.1 使用Fabric 自动化部署179
6.2.2 探索更优雅的方案185
6.3 隔离与运行环境187
6.4 小结199
第 7 章 数据分析和性能优化200
7.1 网站监测与分析203
7.1.1 Google Analytics 203
7.1.2 自建监测和分析服务212
7.2 性能分析及优化214
7.2.1 前端优化:用PageSpeed 工具分析和优化215
7.2.2 后台优化:使用应用性能管理工具223
7.2.3 使用New Relic 进行优化225
7.2.4 缓存初入230
7.3 小结234
第 8 章 持续集成与持续交付236
8.1 持续集成与Jenkins237
8.1.1 工具选择与Pipeline 设计239
8.1.2 Jenkins 搭建持续集成244
8.1.3 使用Jenkinsfile 简化流程252
8.2 持续交付与持续部署初探255
8.2.1 持续交付256
8.2.2 持续部署初探260
8.3 小结261
第 9 章 移动Web 与混合应用263
9.1 移动 Web 与单页面应用264
9.1.1 单页面应用入门266
9.1.2 API 设计与框架选型272
9.2 创建移动应用277
9.2.1 使用Ionic 2 创建应用278
9.2.2 更新首页293
9.3 实现博客应用开发297
9.3.1 创建博客API297
9.3.2 创建详情页和列表页302
9.4 用户登录与博客创建309
9.4.1 使用JWT 实现登录310
9.4.2 测试和发布应用323
9.5 小结325
第 3 部分 增量性优化
第10 章 遗留代码与重构328
10.1 遗留系统330
10.1.1 什么是遗留系统330
10.1.2 遗留系统改造334
10.2 易读的代码与重构336
10.2.1 命名337
10.2.2 一次只做一件事339
10.2.3 减少重复代码340
10.2.3 排版342
10.2.4 重构343
10.3 小结346
第 11 章 增长与新架构348
11.1 增长350
11.1.1 增长:回顾与改变350
11.1.2 增长:技能学习与构建索引354
11.2 设计新架构357
11.3 小结.363
附 录
附录A 如何学习新的技术366
附录 B 安装Piwik.372