新書推薦:
《
无端欢喜
》
售價:HK$
76.2
《
股票大作手操盘术
》
售價:HK$
53.8
《
何以中国·何谓唐代:东欧亚帝国的兴亡与转型
》
售價:HK$
87.4
《
一间只属于自己的房间 女性主义先锋伍尔夫代表作 女性精神独立与经济独立的象征,做自己,比任何事都更重要
》
售價:HK$
44.6
《
泉舆日志 幻想世界宝石生物图鉴
》
售價:HK$
134.2
《
养育女孩 : 官方升级版
》
售價:HK$
50.4
《
跨界:蒂利希思想研究
》
售價:HK$
109.8
《
千万别喝南瓜汤(遵守规则绘本)
》
售價:HK$
44.7
|
編輯推薦: |
这不是一本深入前端、后台、运维、设计、分析等各个领域的书籍
本书以实践的方式,将这一系列的领域及理论知识结合到一起
来帮助读者构建全栈Web 开发的知识体系
并辅以精益及敏捷的思想,来一步步开发Web 应用
|
內容簡介: |
这不是一本深入前端、后台、运维、设计、分析等各个领域的书籍。本书以实践的方式,将这一系列的领域及理论知识结合到一起,来帮助读者构建全栈Web 开发的知识体系,并辅以精益及敏捷的思想,来一步步开发Web 应用:从创建一个UI 原型到编写出静态的前端页面;从静态的前端页面到带后台的应用,并部署应用;从Web 后台开发API 到开发移动Web 应用。在这个过程中,我们还将介绍一些相辅相成的步骤:使用构建系统来加速Web 应用的开发;为应用添加数据分析工具来改进产品;使用分析工具来改善应用的性能;通过自动化部署来加快上线流程;从而帮助读者开发出一个真正可用的全栈 Web 应用。同时,我们也将帮助读者把这些步骤应用到现有的系统上,改进现有系统的开发流程。
|
關於作者: |
黄峰达(Phodal Huang) 程序开发者、创作者和作家,毕业于西安文理学院电子信息工程专业,现作为一个咨询师就职于 ThoughtWorks。他热爱编程、写作、设计、旅行、hacking,个人网站为:https:www.phodal.com 。
|
目錄:
|
第 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 小结........................................................................................................
|
內容試閱:
|
前言
学习 Web 开发最难的不是学习相关技术,而是需要了解整个Web 开发的知识体系。多数时候并不是因为我们不学习,而是因为我们不知道学习什么。完整的知识体系不仅仅包括前端、后台开发,还应该包括持续集成、自动化部署等内容。这些往往需要几本不同的书才能学习到,另外,它们也难以保证知识体系的完整性。我们在学习的时候,也往往并没有注意到它们之间的联系。
本书可以为读者构建出清晰、完整的Web 开发体系,包括:前端、后台的技术选型,搭建构建系统,如何上线部署,并进行数据分析,以及如何在其中结合最好的工程实践等。希望作为读者的你,可以将本书当作一本索引书籍,以此来开启你的Web 开发新世界;你可以按书中的实践来进行Web 编程,并结合理论来实践。
为什么写这本书
本书是我在实习的时候特别想写的一些内容关于如何系统地学习Web 开发,只是我一直缺少一条主线来将这些内容一一串起来。
2016 年年初,我在GitHub 上开源了一个名为Growth 的应用(读者可以在App Store和各大应用商店下载该软件)。在该应用中便包含了本书的主要思想:Web 应用的生命周期。在不断迭代的过程中,该应用越来越受开发者喜爱,至今已经有超过10000 名用户用过这个应用。随后,笔者在GitHub 上推出了开源电子书《Growth:全栈增长工程师指南》,已经有超过4500 个Star。由于电子书本身只是一个指南,越来越多的读者还希望有一本实战。也因此诞生了《Growth:全栈增长工程师实战》,其在GitHub 上也有超过1000 个Star。
后来,我才下决心去出版这样一本书。写一本书不是一件容易的事,相比较而言,读一本书则要简单许多。前者要花费一个人几个月的时间来完成,而后者只需要几星期、几天,或者是几小时的事。花几分钟将书的目录过一遍,随后只看几页想看的内容,余下的内容则可以在以后闲暇的日子里探索。
本书是我在编程生涯初期的一些体会,它更像是一本关于Web 开发的索引书籍,但其实这些索引正是我读了大量书籍后,自己对精髓之处进行的理解加工。在这本书里,你会看到我对很多知识点进行了概括,并以实践的方式将一个个知识点连接到一起。
在最开始的时候,我曾经想将书名命名为实习记。后来又觉得虽然这是在我实习期间学到的知识,但其实很多内容在其他公司是学不到的。因此,在电子书里将其命名为Growth,它不仅可以使读者增长知识,也在让我自己成长。
本书目标
本书的目标是帮助读者构建Web 应用的全栈开发所需要的完整知识体系,并以精益创业的思想来一步步开发Web 应用。
?? 从创建一个UI 原型到编写出静态的前端页面。
?? 从静态的前端页面到后台的应用,并部署应用。
?? 从Web 后台开发API 到开发移动Web 应用。
在这个过程中,我们还将介绍一些相辅相成的步骤:
?? 使用构建系统来加速Web 应用的开发。
为应用数据分析工具改进产品。
?? 使用分析工具改善应用的性能。
?? 通过自动化部署加快上线流程。
从而帮助读者开发出一个真正可用的全栈Web 应用。同时,我们也希望能帮助读者将这些步骤应用到现有的系统上,改进现有系统的开发流程。
本书结构
本书从结构上分成了3 部分,每部分都会有不同的侧重点。
第 1 部分:准备阶段
在这一部分里,我们将主要集中于编码前的一系列开发准备工作,从选择一个合适的IDE 到创建一个Web 应用的构建流。
第 1 章基础知识介绍了搭建开发所需要的基本环境,以及IDE、操作系统、版本管理工具等日常工具的选择与使用;还介绍了如何对一个目标进行切分,以便我们在实现的时候可以一步步往下实践。
第 2 章最小可行化应用介绍了如何使用UI 工具来创建原型,并根据这个原型创建出一个最简单的Web 应用;接着介绍了在Web 应用开发的过程中,如何使用精益的思想来开发出用户喜爱的产品。
第 3 章技术选型与业务对后台开发所需要的技术进行简单概览,并介绍了不同后台组件的框架,以及如何从这些框架中选择出合适的框架。同时还介绍了Python 下的Web开发框架Django,以及如何用这个框架创建一个hello,world!程序。
第 4 章构建系统及其工作流介绍 Web 应用中常见的构建流程及组件,以及如何结合Fabric 打造后台的构建系统。
第 2 部分:编码到上线
在这一部分里,我们主要讲述大部分Web 应用的开发过程,并介绍在开发过程中一些好的实践。
第 5 章编码 介绍了如何使用Django 创建一个简单的博客应用,以及如何使用单元测试、UI 测试来测试代码的功能。
第 6 章上线 介绍了如何手动部署开发的Web 应用到产品环境,以及如何使用自动部署工具来完成自动化部署。
第 7 章数据分析和体验优化介绍了如何使用网页监测工具来分析网页的流量来源、用户行为等,并结合一些前端、后台的优化工具对应用进行优化。
第 8 章持续集成与持续交付介绍了如何使用持续集成工具,以及如何使用持续集成工具来改进开发流程,并实现自动化的部署。
第 9 章移动 Web 与混合应用介绍如何结写后台API 来创建移动应用,以及如何为单页面应用提供SEO 支持。
第 3 部分:增量性优化
第 10 章遗留代码与重构介绍什么是遗留系统,以及如何基于第2 部分中的经验来改进遗留系统。
第 11 章增长与新架构介绍如何使用回顾与反馈来使程序员成长,以及如何依据需要设计出新的架构。
技术栈概述本书所介绍的工具主要集中于前端、后台、构建工具和前端UI 框架四部分,分别如下。
?? Django 是Python 语言的一个MVC 架构Web 开发框架。本书使用这个框架来介绍如何编写单元测试、功能测试,并演示如何使用它进行持续集成和持续部署。
?? Bootstrap 是一个在前端领域相当流行的响应式Web UI 开发框架,本书出于开发便捷的缘故使用这个框架。
?? Fabric 是一个命令行的自动化部署工具,本书使用这个框架来展示如何搭建构建系统,并使用它来进行自动化部署。
?? Angular 2 是一个可以用于构建移动应用和桌面Web 应用的开发平台,我们在书里用它来展示如何开发前后端分离的Web 应用程序。上面的几个框架可以构成跨手机、桌面的一个Web 应用,以及如何对其进行自动化部署。另外,还将介绍一些工具和框架来帮助我们开发:
?? Ionic 2 是一个跨平台(Android、iOS、Windows Phone)的混合应用开发框架,基于Angular 2 框架,并搭建有大量的UI 组件,以及原生组件,我们在书里说明它与Angular 2 如何共用代码来开发手机端应用。
?? Jenkins 是一个持续集成工具,它提供了持续集成与持续部署工具链中所需要的大部分工具。我们将用它来展示如何进行持续集成,并结合Fabric 来实现自动化部署。本书将展示如何结合这些工具来做一些最佳实践,读者不必担心它会影响你的阅读,并且这些工具也很容易找到相应的替代品。
代码
本书相关的代码都可以从GitHub 上下载到:https:github.comphodalgrowth-code。混合应用部分的代码可以从https:github.comphodalgrowth-paper-hybrid 处下载。这些代码遵循MIT 协议开源,读者可以将这些代码用于学习、商业等用途的项目中,不需要笔者同意。同时,笔者也不对这些代码的衍生代码负责。
遇到问题
在遇到问题时,欢迎及时与笔者联系。遇到代码问题时,建议直接在GitHub 上创建一个相关Issue,以便我们帮助其他读者解决同样的问题。
遇到内容不清楚等问题时,可以通过下面的方式联系笔者:
1. 通过GitHub 上的Growth 项目参与讨论:https:github.comphodalgrowth-code
2. 在Growth 论坛上讨论:https:forum.growth.ren
3. 在微博上与我联系:@phodal
4. 通过邮件:h@phodal.com
5. 加入QQ 群讨论:529600394
你也可以在知乎、SegmentFault 网站上进行提问,并@phodal 来帮助你解决这个问题。
致谢
我要把这本书献给花仲马,没有她,就没有这本书。感谢她在这本书的写作过程中一直陪伴着我,并为这本书进行了中文校对来保证语句的通顺。同时,我想特别感谢ThoughtWorks 的同事薛倩、阿里巴巴的孙辉在本书创作过程中提供了详细的反馈,正是他们的帮助让本书更加准确、容易阅读。我还想特别感谢在ThoughtWorks 学习时的同事,为我提供悉心指导与帮助。特别感谢王超、陈卿、王妮、曹隆凯、张静强、刘杰、王磊,在和他们进行结对编程时,我学习到了敏捷软件开发、Tasking等编程之外的技能,感谢他们帮我走了这么远。
此外,还有那些在GitHub 上为我提供反馈的用户,正是他们的反馈促使这本书更加完整。由于人数众多,这里仅列出这些用户的ID:
感谢 ethan-funny、izhangzhihao、kaiguo、gymgle、aidewoode、wenzhixin、sasuke6、wangyufeng0615 、walterlv 、lolosssss 、NehzUx 、mikulely 、yulongjun 、PhilipTang 、ReadmeCritic、ReadmeCritic、wangcongyi、loveisbug 等用户为《Growth:全栈增长工程师指南》提供反馈与修改。
感谢 Pandoraemon、wo0d、ReadmeCritic、zhangmx、felixglow 等用户为《Growth:全栈增长工程师实战》提供了反馈与修改。
轻松注册成为博文视点社区用户(www.broadview.com.cn
|
|