• Jenkins自动化构建系列:01敏捷开发、自动化构建与持续集成


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

    敏捷是什么?

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

    敏捷到底是什么?

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

    为什么需要敏捷开发?

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

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

    为什么需要自动化构建?

    传统的开发流程:

    敏捷的开发流程:

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

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

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

    Jenkins能解决什么?

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

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

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

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

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

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

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


    记录,为更好的自己!

  • 相关阅读:
    数据库连接池大小
    java的关闭钩子(Shutdown Hook)
    为线程池中的每个线程设置UncaughtExceptionHandler
    java 线程的interrupt和sleep、wait
    中断
    NIO
    VMware 安装 VMware Tools 工具
    php 雪花算法
    python 执行系统文件
    php curl 获取响应头
  • 原文地址:https://www.cnblogs.com/ym123/p/4381483.html
Copyright © 2020-2023  润新知