第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部分 准备阶段 12
第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 安装Django 74
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部分 编码到上线 112
第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 持续集成与Jenkins 237
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 创建博客API 297
9.3.2 创建详情页和列表页 302
9.4 用户登录与博客创建 309
9.4.1 使用JWT实现登录 310
9.4.2 测试和发布应用 323
9.5 小结 325
第3部分 增量性优化 328
第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
附录 366
附录A 如何学习新的技术 366
附录B 安装Piwik 372