1.目标

问题
降低项目集成的风险
办法
早发现,早处理!
思想
一点一点改变,循序渐进

2.背景:软件开发过程中的两大难题

目标风险
确定软件需求,即确定目标
进度风险
确定当前离目标有多远,即剩余工作量

3.持续集成可用来解决第二个难题

质量无法保证
因为没有集成,只能保证组件的质量,无法保证总体的质量
主观判断不准
因为没有集成,忽略了集成的工作量(发现bug并修复)
方法
将集成的工作量分摊到平时,做一步,集成一步,步步为营!
好处1
保证开发过程中软件的整体质量
好处2
集成工作分摊到平时后,可降低判断误差
好处3
如果使用工具自动化集成中的重复过程,可以减少工作量

4.使用工具完成集成构建 CI

①触发集成
手动 || 自动(根据时间配置)
②CI服务器获取代码副本,执行构建脚本完成集成
源代码编译
生成可执行文件
数据库集成
运行Sql脚本
测试
运行自动化测试脚本
审查
运行代码审查工具
部署
打包软件,安装到相应环境
③ CI服务器反馈构建结果

5.开发过程中的7项最佳实践

经常提交代码
尽早发现集成问题
不要提交无法构建的代码
保证自己的代码质量
立即修复无法集成的构建
保证大家的开发基础
编写自动化测试
一次编写,重复使用
必须通过所有测试和审查
严格把好质量关
执行私有构建
降低集成构建失败的概率
避免迁出无法构建的代码
不能在这个基础上工作,是无效的操作

6.权衡自动化构建中要包含的过程

加入的过程越少,质量标准就越低
加入的过程越多,反馈速度就越慢
可以根据项目的里程碑,在不同阶段关注不同的过程(灵活增减)

7.推荐工具

Team City
https://www.jetbrains.com/zh/teamcity

1.我们为用户创建了应用程序使过程自动化,却忘了自动化自己的软件开发过程