zoukankan      html  css  js  c++  java
  • Jenkins自动化构建系列:01敏捷开发、自动化构建与持续集成

    SVN与TortoiseSVN实战系列》已写完,今天新开一个《Jenkins自动化构建系列》,上周听了Bob Jiang老师的Agile1001公开课,一直想写个总结,这篇关于敏捷开发、自动化构建与持续集成的思考就作为开题篇吧。

    敏捷是什么?

    敏捷是一把伞,这把伞下边有XP、Scrum、FDD。。。,当然也包括自动化构建、持续集成,其实符合敏捷思想的开发方法、工具,如Jenkins都可以属于敏捷开发的范畴,上课时的PPT:

    敏捷到底是什么?

    其实关于敏捷的定义有很多,Bob Jiang的解释是:尽早地交付商业价值。

    为什么需要敏捷开发?

    敏捷之所以流行,是因为传统的瀑布式开发方式导致大项目的失败率很高(与小项目对比),而敏捷的解决思路是将大项目分解为小项目(也可以理解为阶段里程碑)来提高项目的成功率,尽早地、频繁地、持续的交付。

    大项目与小项目成功率对比图:

    为什么需要自动化构建?

    传统的开发流程:

    敏捷的开发流程:

    由于敏捷的开发方式改变了传统的开发流程,需要持续频繁的对代码进行集成、构建、发布,所以就产生了自动化构建与持续集成的需求。

    想想每次发布所需的工作:构建、交付准备环境、代码发布全由手工完成,同样还有运行测试、备份旧版本、新版本打标签以及许多其他重复的事情。

    计算机就是用来解决重复性工作的,同一项工作重复3次以上就应该使用工具来解决。

    Jenkins能解决什么?

    Jenkins 是一个开源项目,提供了一种易于使用的自动化构建和持续集成系统。

    软件构建自动化:配置完成后,Jenkins会依照预先制定的时间表,或者针对某一特定事件触发,对源代码编译构建;

    可持续的自动化检查:Jenkins能持续地获取新增或修改后签入的源代码,并对这些代码使用预先设定的规则进行代码质量检查;

    可持续的自动化测试:构建检查的扩展部分,构建后执行预先制定的一套测试规则,如项目中的单元测试、集成测试代码,并收集测试代码覆盖率、结果;

    生成后后续过程的自动化:当自动化检查和测试成功完成,软件构建的周期中可能也需要一些额外的任务,诸如生成文档、打包软件、部署构件到一个运行环境或者软件仓库。

    Jenkins是框架式的,大部分功能通过插件的方式来实现,可扩展性非常高。

    手贱百度了下Jenkins的百度指数,大家看出点什么没?


    记录,为更好的自己!

  • 相关阅读:
    CentOS7安装MySQL5.7
    .gdbinit文件配置
    Linux 动态库加载
    GDB常用调试命令(二)
    git删除缓存区中文件
    git添加空文件夹
    Linux 打开core dump功能
    C++ 预处理器
    C++ 模板
    C++ 命名空间
  • 原文地址:https://www.cnblogs.com/ym123/p/4381483.html
Copyright © 2011-2022 走看看