高效团队开发:工具与方法
本书以团队发中所必需的工具的导方法和使用方法为核心,对团队发的整体结构行概括性的说明。内容涉及团队发中发生的问题、版本管理系统、缺陷管理系统、持续集成、持续交付以及回归测试,并且对“为什么用那个工具”“为什么要这样使用”等发现场常有的问题行举例说明。 本书适合初次手发团队的项目经理,计划始新项目的项目经理、Scrum Master,以及现有项目中返工、延期问题频发的发人员阅读。 本书以团队发中所必需的工具的导方法和使用方法为核心,对团队发的整体结构行概括性的说明。内容涉及团队发中发生的问题、版本管理系统、缺陷管理系统、持续集成、持续交付以及回归测试,并且对“为什么用那个工具”“为什么要这样使用”等发现场常有的问题行举例说明。 本书适合初次手发团队的项目经理,计划始新项目的项目经理、Scrum Master,以及现有项目中返工、延期问题频发的发人员阅读。

致中文版的读者

译者序

序言

第1章 什么是团队开发

1.1 一个人也能进行开发

1.2 团队开发面临的问题

1.3 如何解决这些问题

1.4 如何解决这些问题

1.4.1 第2章 :案例分析

1.4.2 第3~5章 :基础实践

1.4.3 第6~7章 :持续交付和回归测试

1.5 阅读本书前的注意事项

1.5.1 最好的方法是具体问题具体分析

1.5.2 没有最好的工具

第2章 团队开发中发生的问题

2.1 案例分析的前提

2.1.1 项目的前提条件

2.2 案例分析(第1天)

2.2.1 问题1 :重要的邮件太多,无法确定处理的优先顺序

2.2.2 问题2 :没有能用于验证的环境

2.2.3 问题3 :用别名目录管理分支

2.2.4 问题4 :重新制作数据库比较困难

2.3 案例分析(第1天)中的问题点

2.3.1 问题1 :重要的邮件太多,无法确定处理的优先顺序

● …… 邮件的数量太多,导致重要的邮件被埋没

●…… 无法进行状态管理

●…… 直观性、检索性较弱

●…… 用邮件来管理项目的课题

2.3.2 问题2 :没有能用于验证的环境

2.3.3 问题3 :用别名目录管理分支

2.3.4 问题4 :重新制作数据库比较困难

2.4 案例分析(第2天)

2.4.1 问题5 :不运行系统就无法察觉问题

2.4.2 问题6 :覆盖了其他组员修正的代码

2.4.3 问题7 :无法自信地进行代码重构

2.4.4 问题8 :不知道 bug 的修正日期,也不能追踪退化

2.4.5 问题9 :没有灵活使用分支和标签

2.4.6 问题10 :在测试环境、正式环境上无法运行

2.4.7 问题11 :发布太复杂,以至于需要发布手册

2.5 案例分析(第2天)中的问题点

2.5.1 问题5 :不运行系统就无法察觉问题

2.5.2 问题6 :覆盖了其他组员修正的代码

2.5.3 问题7 :无法自信地进行代码重构

2.5.4 问题8 :不知道 bug 的修正日期,也不能追踪退化

2.5.5 问题9 :没有灵活使用分支和标签

2.5.6 问题10 :在测试环境、正式环境上无法运行

2.5.7 问题11 :发布太复杂,以至于需要发布手册

2.6 什么是理想的项目

第3章 版本管理

3.1 版本管理系统

3.1.1 什么是版本管理系统

3.1.2 为什么使用版本管理系统能带来便利

●…… 能够保留修改内容这一最基本的记录

●…… 能够方便地查看版本之间的差异

●…… 能够防止错误地覆盖他人修改的代码

●…… 能够还原到任意时间点的状态

●…… 能够生成多个派生(分支和标签),保留当时项目状态的断面

3.2 版本管理系统的发展变迁

3.2.1 没有版本管理系统的时代(20世纪70年代以前)

3.2.2 RCS 的时代(20世纪80年代)

3.2.3 CVS 的诞生(20世纪90年代)

3.2.4 VSS、Perforce 等商用工具的诞生(20世纪90年代)

3.2.5 Subversion 的诞生(2000年以后)

3.2.6 分布式版本管理系统的诞生(2005年以后)

3.2.7 番外篇 :GitHub 的诞生

3.2.8 版本管理系统的导入情况

3.3 分布式版本管理系统

3.3.1 使用分布式版本管理系统的5大原因

●…… 能将代码库完整地复制到本地

●…… 运行速度快

●…… 临时作业的提交易于管理

●…… 分支、合并简单方便

●…… 可以不受地点的限制进行协作开发

3.3.2 分布式版本管理系统的缺点

●…… 系统中没有真正意义上的最新版本

●…… 没有真正意义上的版本号

●…… 工作流程的配置过于灵活,容易产生混乱

●…… 思维方式的习惯需要一定的时间

3.4 如何使用版本管理系统

3.4.1 前提

3.4.2 版本管理系统管理的对象

●…… 代码

●…… 需求资料、设计资料等文档

●…… 数据库模式、数据

●…… 配置文件

●…… 库的依赖关系定义

3.5 使用 Git 顺利地推进并行开发

3.5.1 分支的用法

●…… 什么是分支

●…… 什么是发布分支(release branch)

●…… 克隆和建立分支

●…… 提交和提交记录

●…… 分支的切换

●…… 修正 bug 后的提交

●…… 合并到 master

●…… 向 master 进行 Push

●…… 分支使用方法总结

3.5.2 标签的使用方法

●…… 什么是标签

●…… 新建标签

●…… 标签的确认

●…… 标签的取得

●…… 标签使用方法总结

3.6 Git 的开发流程

3.6.1 Git 工作流的模式

●…… 中央集权型工作流

●…… GitHub 型工作流

3.6.2 分支策略的模式

●…… git-flow

●…… github-flow

●…… 笔者的例子(折衷方案)

3.6.3 最合适的流程和分支策略因项目而异

3.7 数据库模式和数据的管理

3.7.1 需要对数据库模式进行管理的原因

●…… 由数据库管理员负责对修改进行管理的情况

●…… 修改共享数据库的模式的情况

3.7.2 应该如何管理数据库模式

●…… 版本管理的必要条件

●…… 什么是数据库迁移

●…… 数据库迁移的功能

3.7.3 数据库迁移工具

●…… Migration(Ruby on Rails)

●…… south(Django)

●…… Migrations Plugin(CakePHP)

●…… Evolution(Play Framework)

3.7.4 具体用法(Evolution)

●…… 规定

●…… SQL 文件的执行

●…… 开发者之间数据库模式的同步

●…… 一致性问题的管理

3.7.5 数据库迁移中的注意点

3.8 配置文件的管理

3.9 依赖关系的管理

3.9.1 依赖关系管理系统

●…… JVM 语言

●…… 脚本语言

●…… 管理依赖关系的优点

3.10 本章总结

第4章 缺陷管理

4.1 缺陷管理系统

4.1.1 项目进展不顺利的原因

4.1.2 用纸、邮件、Excel 进行任务管理时的问题

4.1.3 导入缺陷管理系统的优点

●…… 具有任务管理所需的基本功能

●…… 直观性、检索性较强

●…… 能够对信息进行统一管理及共享

●…… 能够生成各类报表

●…… 能够和其他系统进行关联,具有可扩展性

4.1.4 什么是缺陷驱动开发

●…… 缺陷驱动开发的具体步骤

4.2 主要的缺陷管理系统

4.2.1 OSS 产品

●…… Trac

●…… Redmine

●…… Bugzilla

●…… Mantis

4.2.2 商用产品

●…… JIRA

●…… YouTRACK

●…… Pivotal Tracker

●…… Backlog

●…… GitHub

4.2.3 选择工具(缺陷管理系统)的要点

4.3 缺陷管理系统与版本管理系统的关联

4.3.1 通过关联实现的功能

●…… 从提交链接到问题票

●…… 从问题票链接到提交

●…… 提交的同时修改问题票的状态

4.3.2 关联的配置方法

4.3.3 GitHub

●…… GitHub 的 issue

●…… Service Hooks

●…… GitHub 和 Pivotal Tracker 的关联

●…… GitHub 和 JIRA 的关联

4.3.4 Trac/Redmine

4.3.5 Backlog

●…… Backlog 和 Git 的关联

●…… Backlog和 GitHub 的关联

4.3.6 Git 自带的 Hook 的使用方法

4.4 新功能开发、修改 bug 时的工作流程

4.4.1 工作流程

●…… ❶ 建立问题票

●…… ❷ 指定负责人

●…… ❸ 开发

●…… ❹ 提交

●…… ❺ Push 到代码库

4.5 回答“那个 bug 是什么时候修正的”的问题

4.5.1 Pivotal Tracker 的例子

●…… 用记忆中残留的关键字进行检索

●…… 检索

●…… 通过问题票查找代码修改

4.5.2 Backlog 的例子

●…… 检索

4.6 回答“为什么要这样修改”的问题

4.7 本章总结

第5章 CI(持续集成)

5.1 CI(持续集成)

5.1.1 什么是 CI(持续集成)

●…… 集成(integration)

●…… 持续地进行集成就是 CI

5.1.2 使开发敏捷化

●…… 瀑布式开发的开发阶段

●…… 敏捷开发的开发阶段

5.1.3 为什么要进行 CI 这样的实践

●…… 成本效益

●…… 市场变化的速度

●…… 兼顾开发速度和质量

5.1.4 CI 的必要条件

●…… 版本管理系统

●…… build 工具

●…… 测试代码

●…… CI 工具

5.1.5 编写测试代码所需的框架

●…… 测试驱动开发(TDD)的框架

●…… 行为驱动开发(BDD)的框架

5.1.6 主要的 CI 工具

●…… Jenkins

●…… TravisCI

5.2 build 工具的使用方法

5.2.1 新建工程的情况

●…… 建立工程雏形

●…… 依赖关系的定义

●…… 执行测试

●…… 导入 Eclipse

5.2.2 为已有工程添加自动 build 功能

5.2.3 build 工具的总结

5.3 测试代码的写法

5.3.1 作为 CI 的对象的测试的种类

5.3.2 何时编写测试

●…… 新建工程的情况

●…… 已有工程中没有测试的情况

●…… 修改 bug 或添加新功能的情况

5.3.3 棘手的测试该如何写

●…… 和外部系统有交互的测试

●…… 使用 mocking 框架进行测试

●…… 使用内存数据库进行测试

●…… 数据库变更管理和配置文件管理的测试

●…… UI 相关的测试

●…… 棘手的测试要权衡工数

5.4 执行基于 Jenkins 的 CI

5.4.1 Jenkins 的安装

●…… 使用本地安装包进行安装

5.4.2 Jenkins 能干些什么

5.4.3 新建任务

5.4.4 下载代码

5.4.5 自动执行 build 和测试

●…… 定期执行

●…… 轮询版本管理系统

●…… build 的记述

5.4.6 统计结果并生成报表

5.4.7 统计覆盖率

●…… 覆盖率统计工具

●…… Maven Cobertura 插件的安装

●…… Jenkins 插件的配置

5.4.8 静态分析

5.4.9 配置通知

5.5 CI 的运用

5.5.1 build 失败了该怎么办

●…… Subversion 等中央集权型版本管理系统的情况

●…… Git 等分布式管理系统的情况

●…… 测试后合并

5.5.2 确保可追溯性

●…… 关联 build 和提交

●…… 关联缺陷管理

5.6 本章总结 借助 CI 能够实现的事情

第6章 部署的自动化(持续交付)

6.1 应该如何部署

6.1.1 部署自动化带来的好处

●…… 细粒度、频繁地发布可以使风险可控

●…… 能尽快地获得用户的反馈

●…… 团队的规模可控

6.2 部署的自动化

6.2.1 部署自动化方面的共识

6.2.2 部署流水线

●…… 通过自动化加快部署速度

●…… 任何人都能够实施部署是很重要的

6.2.3 服务提供工具链(provisioning tool chain)

6.3 引导(Bootstrapping)

6.3.1 Kickstart

●…… Kickstart 的使用方法

●…… 使用时的注意事项

●…… Kickstart 的配置示例

6.3.2 Vagrant

●…… 为每一位开发人员准备实体电脑比较困难

●…… 使用虚拟机时的注意事项

●…… 什么是 Vagrant

●…… Vagrant 的安装及运行方法

6.4 配置(Configuration)

6.4.1 不使用自动化时的问题

6.4.2 Chef

●…… Chef 的构成

●…… 目录构成和文件配置

●…… node.json

●…… setup.json

●…… solo.rb

●…… default.rb

●…… virtualhost.conf.erb

●…… Chef 的运行方法和运行结果

●…… 使用 Chef 的优点

●…… 使用 Chef 时的注意事项

●…… 使用 Chef 的时间点

6.4.3 serverspec

●…… 什么是 serverspec

●…… serverspec 的安装

●…… 测试文件的记述方式

●…… httpd_spec.rb

●…… git_spec.rb

●…… serverspec 的执行方法及执行结果

●…… serverspec 的优点

6.4.4 最佳实践(其1)

●…… Vagrantfile

●…… default.rb

6.4.5 最佳实践(其2)

6.4.6 实现物理服务器投入运营为止的所有步骤的自动化

6.5 编配(Orchestration)

6.5.1 发布作业的反面教材

6.5.2 Capistrano

●…… Capistrano 的系统构成

●…… Capistrano 的安装

●…… deploy.rb

●…… Capistrano 的执行方法

6.5.3 Fabric

●…… Fabric(串行执行)的情况

●…… Capistrano(并行执行)的情况

●…… 理解本地服务器和远程服务器操作上的区别

●…… Fabric 的运行方法

6.5.4 Jenkins

●…… 主节点(master node)和从节点(slave node)的协作

●…… 从节点的添加

●…… 任务的添加

●…… 任务的执行

6.5.5 最佳实践

●…… 结合 Jenkins 和 Fabric

6.5.6 考虑安全问题

6.6 考虑运用相关的问题

6.6.1 不中断服务的部署方法

6.6.2 蓝绿部署(blue-green deployment)

6.6.3 云(cloud)时代的蓝绿部署

6.6.4 回滚(rollback)相关问题的考察

●…… 随时准备好退路

●…… 数据库模式的版本管理

●…… 回滚的验证

●…… 只更新代码的发布时的回滚

●…… 数据库模式更新时的回滚

6.7 本章总结

第7章 回归测试

7.1 回归测试

7.1.1 什么是回归测试

7.1.2 测试分类的整理

●…… 支持团队的技术层面的测试(第1象限)

●…… 支持团队的业务层面的测试(第2象限)

●…… 评价产品的业务层面的测试(第3象限)

●…… 使用技术层面测试的产品评价(第4象限)

7.1.3 回归测试的必要性

●…… 退化(degrade)的发生

●…… 应该实现自动测试的原因

7.1.4 回归测试自动化的目标

7.2 Selenium

7.2.1 什么是 Selenium

7.2.2 Selenium 的优点

●…… 自动化测试用例制作简单

●…… 支持多种浏览器及 OS

7.2.3 Selenium 的组件

●…… Selenium IDE

●…… Selenium Remote Control(Selenium RC)

●…… Selenium WebDriver

7.2.4 测试用例的制作和执行

●…… Selemium IDE 的安装和运行

●…… Selenium 的测试用例

●…… 什么是好的测试用例

●…… 用 Selenium Server 来运行测试

7.2.5 Selenium 的实际应用

●…… 测试页面是否有改动

●…… 使 Selenium 测试稳定运行

7.3 Jenkins 和 Selenium 的协作

7.3.1 关联 Jenkins 和 Selenium 的步骤

7.4 Selenium 测试的高速化

7.4.1 利用 Jenkins 的分布式构建实现测试的并行执行

●…… Jenkins 的分布式构建的构成

●…… 分布式构建的配置

7.4.2 Selenium 测试并行化中的难点

7.5 多个应用程序版本的测试

7.5.1 应用的部署

7.5.2 从版本管理系统下载测试用例

7.5.3 用 Selenium 测试

7.6 本章总结

参考文献·网址

……全部

……Git、版本管理系统

……Scrum、敏捷开发

……build·测试

……持续集成

……持续交付


文件大小:68.5MB

内附PC端和移动端阅读器
高效团队开发:工具与方法 介绍图片
《CSS高效开发实战》CSS3 LESS SASS Bootstrap Foundation 从入门到精通

《CSS高效开发实战》CSS3 LESS SASS Bootstrap Foundation 从入门到精通

¥3.00
大卫-豪比逐层布光人像摄影课程国外英语中文字幕视频教程

大卫-豪比逐层布光人像摄影课程国外英语中文字幕视频教程

¥2.00
《JavaScript高级程序设计》第3版 js语言教程教材计算机IT程序设计编程web前端开发教程书

《JavaScript高级程序设计》第3版 js语言教程教材计算机IT程序设计编程web前端开发教程书

¥5.00
JavaScript Web应用开发 高清电子书PDF版本

JavaScript Web应用开发 高清电子书PDF版本

¥3.00
《数码摄影完全自学手册》含随书光盘

《数码摄影完全自学手册》含随书光盘

¥8.00
经典图书《PHP经典实例》(第二版) php实例 PHP经典实例 PHP编程技巧 编程开发人员参考书籍

经典图书《PHP经典实例》(第二版) php实例 PHP经典实例 PHP编程技巧 编程开发人员参考书籍

¥3.00
活动策划方案 7000套47个行业 商务必备 内有详细目录 手工整理

活动策划方案 7000套47个行业 商务必备 内有详细目录 手工整理

¥9.00
最全面买车视频攻略教程 买车不在踩坑 买车防骗

最全面买车视频攻略教程 买车不在踩坑 买车防骗

¥5.00
960份实用合同书 覆盖全行业 办公室商务人事必备

960份实用合同书 覆盖全行业 办公室商务人事必备

¥8.00
高性能Android应用开发 安卓应用开发教程

高性能Android应用开发 安卓应用开发教程

¥3.00
《JavaScript设计模式》JavaScript原生经典教程

《JavaScript设计模式》JavaScript原生经典教程

¥3.00
《javascript框架高级编程》Prototype,YUI,Ext JS,Dojo,MooTools

《javascript框架高级编程》Prototype,YUI,Ext JS,Dojo,MooTools

¥3.00
《CSS Web设计高级教程》(第2版)清华大学出版社

《CSS Web设计高级教程》(第2版)清华大学出版社

¥3.00
零基础速成广东话粤语口语学习视频音频教程

零基础速成广东话粤语口语学习视频音频教程

¥5.00
《编写高质量代码-改善JavaScript程序的188个建议》成林 机械工业出版社

《编写高质量代码-改善JavaScript程序的188个建议》成林 机械工业出版社

¥3.00
Vue.js开发实战视频教程 含课件和源码

Vue.js开发实战视频教程 含课件和源码

¥8.00
JavaScript王者归来 含光盘 最好的JS学习教程电子版

JavaScript王者归来 含光盘 最好的JS学习教程电子版

¥3.00
学习JavaScript数据结构与算法

学习JavaScript数据结构与算法

¥3.00
疯狂HTML5+CSS3+JavaScript  JavaScript前端开发技术教程书籍 html

疯狂HTML5+CSS3+JavaScript JavaScript前端开发技术教程书籍 html

¥3.00
《你不知道的JavaScript》(上卷+中卷+下卷)JavaScript语言程序设计教

《你不知道的JavaScript》(上卷+中卷+下卷)JavaScript语言程序设计教

¥5.00
编程红宝书《JavaScript完全自学手册》珍藏版

编程红宝书《JavaScript完全自学手册》珍藏版

¥3.00
《Python网络数据采集》 人民邮电出版社

《Python网络数据采集》 人民邮电出版社

¥3.00
《实战突击PHP项目开发案例整合》电子工业出版社

《实战突击PHP项目开发案例整合》电子工业出版社

¥3.00
《HTML5与CSS3基础教程》(第8版)累计销售100万册

《HTML5与CSS3基础教程》(第8版)累计销售100万册

¥3.00
JavaScript模式 高清电子书PDF版本

JavaScript模式 高清电子书PDF版本

¥3.00
《代码阅读方法与实践》清华大学出版社

《代码阅读方法与实践》清华大学出版社

¥3.00
《SQL基础教程》+《SQL进阶教程》 SQL应用技能指南 数据库工程师进阶中级教程

《SQL基础教程》+《SQL进阶教程》 SQL应用技能指南 数据库工程师进阶中级教程

¥3.00
JavaScript DOM编程艺术 高清PDF电子书

JavaScript DOM编程艺术 高清PDF电子书

¥3.00
《HTML5 & CSS3编程入门经典》

《HTML5 & CSS3编程入门经典》

¥3.00
JavaScript高效图形编程修订版 JavaScript的面向对象机制 JavaScript性能优化

JavaScript高效图形编程修订版 JavaScript的面向对象机制 JavaScript性能优化

¥3.00
2020年最新vue.js视频自学教程

2020年最新vue.js视频自学教程

¥18.00
JavaScript快速全栈开发 高清电子书PDF版本

JavaScript快速全栈开发 高清电子书PDF版本

¥3.00
JavaScript高级程序设计 第3三版 js语言教材 JavaScript权威指南

JavaScript高级程序设计 第3三版 js语言教材 JavaScript权威指南

¥3.00
PYTHON编程:从入门到实践 核心技术网络爬虫书籍数据分析实战教程教材

PYTHON编程:从入门到实践 核心技术网络爬虫书籍数据分析实战教程教材

¥3.00
《HTML5游戏开发》[美]JeanineMeyer著 人民邮电出版社

《HTML5游戏开发》[美]JeanineMeyer著 人民邮电出版社

¥3.00
《编写高质量代码:Web前端开发修炼之道》

《编写高质量代码:Web前端开发修炼之道》

¥3.00
《Android编程权威指南》第3版

《Android编程权威指南》第3版

¥3.00
精通JavaScript JavaScript经典教程

精通JavaScript JavaScript经典教程

¥3.00
《Bootstrap实战》经典web前端响应式开发教程

《Bootstrap实战》经典web前端响应式开发教程

¥8.00
JavaScript基础教程.第9版

JavaScript基础教程.第9版

¥3.00
销售成交话术谈判签单技巧营业人员导购资料客服手册营销

销售成交话术谈判签单技巧营业人员导购资料客服手册营销

¥3.00
《Android基础教程》第4版

《Android基础教程》第4版

¥6.00
价值6000元内部流出主播网红培训课程

价值6000元内部流出主播网红培训课程

¥5.00
¥3.00
立即下载加入收藏