集成是指软件个人研发的部分向软件整体部分交付,以便尽早发现个人开发部分的问题;
部署是代码尽快向可运行的开发/测试节交付,以便尽早测试;
交付是指研发尽快向客户交付,以便尽早发现生产环境中存在的问题。
如果说等到所有东西都完成了才向下个环节交付,导致所有的问题只能再最后才爆发出来,解决成本巨大甚至无法解决。
而所谓的持续,就是说每完成一个完整的部分,就向下个环节交付,发现问题可以马上调整。是的问题不会放大到其他部分和后面的环节。

这种做法的核心思想在于:既然事实上难以做到事先完全了解完整的、正确的需求,那么就干脆一小块一小块的做,并且加快交付的速度和频率,使得交付物尽早在下个环节得到验证。早发现问题早返工。

举个例子,你家装修厨房,其中一项是铺地砖,边角地砖要切割大小。如果一次全切割完再铺上去,发现尺寸有误的话浪费和返工时间就大了,不如切一块铺一块。这就是持续集成。
装修厨房有很多部分,每个部分都有检测手段,如地砖铺完了要测试漏水与否,线路铺完了要通电测试电路通顺,水管装好了也要测试冷水热水。如果全部装完了再测,出现问题可能会互相影响,比如电路不行可能要把地砖给挖开……。那么每完成一部分就测试,这是持续部署。
全部装修完了,你去验收,发现地砖颜色不合意,水池太小,灶台位置不对,返工吗?所以不如没完成一部分,你就去用一下试用验收,这就是持续交付。
--------------------
补充:从敏捷思想中提出的这三个观点,还强调一件事:通过技术手段自动化这三个工作。加快交付速度。

 
 
作者:赵劼
链接:https://www.zhihu.com/question/23444990/answer/26995938
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

最新文章

  1. Scrum项目8.0
  2. JDBC学习笔记(2)
  3. 周五了啦啦啦啦-LAMP+PHP‘s OOP
  4. Mybatis.Net 整合 ODP.NET Managed
  5. 说一说vector<bool>
  6. c# 模拟表单提交,post form 上传文件、大数据内容
  7. debug 输出 以及宏定义--备
  8. Java基础知识强化49:10个实用的但偏执的Java编程技术
  9. 关于jquery-easyUI中主键属性data-options的了解
  10. js学习笔记第一课(js基础知识)
  11. Static关键字的作用及使用
  12. MongoDB数据模型(一)
  13. Keepalived + HAProxy 搭建【第一篇】HAProxy 的安装与配置
  14. WebRTC MCU( Multipoint Conferencing Unit)服务器调研
  15. 【原】Linux环境下Shell调用MySQL并实现定时任务
  16. day 26 初识进程,验证客户端合法性
  17. Spring中ioc的实现原理
  18. 手动安装sublime插件babel-sublime
  19. Codeforces Round #287 (Div. 2) B. Amr and Pins 水题
  20. Daily Scrum 11.01

热门文章

  1. pip virtualenv requirements
  2. 【Hadoop】Hadoop MR 性能优化 Combiner机制
  3. netty handle处理流程
  4. linux下编译C/C++
  5. 解决ListView在界面只显示一个item
  6. Angular 学习笔记——sublime
  7. ubuntu 备份清理tomcat日志,并且删除七天之前的日志
  8. NSDate 类的总结,全面基础
  9. DICOM医学图像处理:WEB PACS初谈二,图像的传输
  10. Jmeter返回org.apache.http.NoHttpResponseException: The target server failed to respond解决办法