《全栈应用开发:精益实践》
《全栈应用开发:精益实践》
PHODAL

这不是一本深入前端、后台、运维、设计、分析等各个领域的书籍。本书以实践的方式,将这一系列的领域及理论知识结合到一起,来帮助读者构建全栈Web 开发的知识体系,并辅以精益及敏捷的思想,来一步步开发Web 应用:从创建一个UI 原型到编写出静态的前端页面;从静态的前端页面到带后台的应用,并部署应用;从Web 后台开发API 到开发移动Web 应用。

在这个过程中,我们还将介绍一些相辅相成的步骤:使用构建系统来加速Web 应用的开发;为应用添加数据分析工具来改进产品;使用分析工具来改善应用的性能;通过自动化部署来加快上线流程;从而帮助读者开发出一个真正可用的全栈 Web 应用。同时,我们也将帮助读者把这些步骤应用到现有的系统上,改进现有系统的开发流程。

目录

第 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 安装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 部分 编码到上线
第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 部分 增量性优化
第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

关于作者

Phodal Huang

Engineer, Consultant, Writer, Designer

ThoughtWorks 技术专家

工程师 / 咨询师 / 作家 / 设计学徒

开源深度爱好者

出版有《前端架构:从入门到微前端》、《自己动手设计物联网》、《全栈应用开发:精益实践》

联系我: h@phodal.com

微信公众号: 最新技术分享