自从使用了Jenkins后,越来越觉得好用,一键编译发布,不需要再关注恼人的繁琐细节,让软件发布变得简单起来,点击一下构建按钮,然后可以去做其他工作,几分钟后回来,Jenkins已经将软件包上传到了服务器指定位置。这个动作会在每次打包时不停的重复下去,总是能收到可以预测的结果,可以放心的交给Jenkins做这件事。软件发布工作又变得欢快起来。

 

    Jenkins是一个集成工具,将编译器,文件系统,源码管理,批处理等诸多工具和系统结合起来,让单一的武器变成了一个综合作战平台。而Jenkins完美的粘合和这些工具形成一个平台。合理的调度这些武器系统完成软件发布这件事。

 

    Jenkins记录了软件发布的所有配置,其实是名副其实的软件构建文档,当有同事问我们的软件是如何构建打包的?回答:去看看Jenkins配置吧,那里有你要的答案。我们知道文档容易过时,因为需求易变,设计随之改变,文档往往是最后更新的。单元测试就是设计文档,因为单元测试描述了类的行为,单元测试测的就是类的行为。通过单元测试就知道一个类有哪些行为,如何初始一个类,如何使用这个类。同理,Jenkins的配置就是软件构建文档,详细描述了软件的构建过程。

 

    使用Jenkins实现程序自动化编译,是自动化思想的具体应用,体现了DRY原则,是DRY原则在发布软件的应用。

  

DRY原则:

          系统中的每一项知识都必须具有单一、无歧义、权威的标识。摘自《程序员修炼之道》

 

    DRY--不要重复你自己。项目中反复出现的执行动作,都要自动化,毫无疑问构建,打包,发布,就属于这类重复的事情。不要手动执行这些流程,那是对生命的浪费。大脑要用来做思考相关的创造性劳动,而不是反复做机械的动作。

 

    就像软件开发一样,努力消除重复,谨记DRY原则,持续重构,提取共同功能,软件就在这样的一次次的微小的重构变化下,逐步走向可维护、可扩展的好味道方向(避免坏味道)。软件发布也要应用DRY原则,努力消除重复(手动重复发布动作)。

 

    附相关主题:

    1、《持续交付-发布可靠软件的系统方法》提到常见的发布反模式:手动发布软件

    2、Bob大叔在《程序员的职业素养》的工具篇提到“他也在使用Jenkins,目标是和源码控制系统对接起来。不管什么时候,只要有人签入代码,就要能自动运行构建,并把状态结果报告给团队。”

    3、《程序员修炼之道》:无处不在的自动化

 

写写画画,神奇的事情发生了