《高效团队开发工具与方法》总结          返回主页

本文是对《高效团队开发工具与方法》一书中的精华的总结,目的是为开发团队制定一个开发流程供参考。

. 版本控制

. Github Flow开发流程

. 缺陷管理

. CI(持续集成)

. 单元测试

. 回归测试


版本控制

  1. 一般我们所说的应该管理的信息主要包括以下这些:
    1. 代码
    2. 需求定义、设计资料等文档
    3. 数据库模式、数据
    4. 中间件等的配置文件
    5. 库的依赖关系定义
  2. 什么是发布分支?
    1. 发布分支是向正式环境进行发布时实际使用的分支。有将master用作发布分支的,也有从master建立别的分支作为发布分支的。
    2. 通过git checkout进行新分支的建立及分支之间的切换
    3. 通过git log --pretty=oneline将标签按行分隔,便于查看

什么是Github-flow

  1. master的内容都可以进行发布,且master内容始终为最新的版本,此处默认组织内容为master分支
  2. 当要添加新功能时直接从master上新建分支
  3. 建立的分支进行修改或者功能新增之后在本地环境进行提交,并以同名的分支定期向远程代码库进行PUSH,此处的远程代码库为从master fork而来的自己的代码库
  4. 开发结束之后向master发送Pull-request请求
  5. 当pull-requst通过review之后合并到master,再由master进行发布

缺陷管理

通过github的issue进行bug提交及修复

  1. Github的issue

    1. 关联Github自带的issue功能和代码修改是非常简单的,只需要在提交记录中像下面这样加入issue号码即可

       Fixed #21
      

      这样从提交到21号issue的链接就建立起来了。Github还会在21号issue中添加相应的提交记录的连接,并将其状态修改close。可以说必要的功能是一应俱全的。


持续集成(CI)

  1. 什么是集成?(集成,具体来说就是像下面这样执行build和测试的流程)
    1. 将所有的代码集中到一处
    2. 设置依赖程序库的路径
    3. 必要的情况下进行编译
    4. 进行数据库的构建和数据的加载
    5. 必要的情况下对中间件进行配置和启动
    6. 实施单元测试、集成测试和用户验收测试等
  2. 开始实施CI的必要条件如下
    1. 版本管理系统
      1. 如:git、svn等
    2. build工具
      1. 如:maven、Ant、Gradle等
    3. 测试代码
    4. CI工具
      1. 如:jenkins等

单元测试

  1. Java程序多使用Junit测试套件进行单元测试,书写单元测试是对TDD(测试驱动开发) 的有效实践。
  2. 关于Junit单元测试参考
    1. Junit4使用小结
    2. 慕课网:JUnit—Java单元测试必备工具