基于SVN的代码自助增量在持续交付中的应用

2016-07-04 03:53刘壮飞
中国新通信 2016年10期
关键词:插件增量代码

刘壮飞

【摘要】 目前,软件产品在各个领域开发和应用,软件产品推陈出新采用迭代发布,频繁更新,给IT支撑带来了极大的压力,也对版本的管控力度和管控水平提出了更高的要求。那么,我们在日常的管控过程中,如何提升版本增量的便利性,提升效率,保障版本按时保质发布。本文主要重在解决以上问题,提供一种基于SVN开源框架并进行二次开发功能,实现版本的管控、自助增量、自动编译、打包和部署和发布功能。以期望通过可视化、自动化和自助的方式来实现产品版本从版本制定、研发代码增量、编译和打包部署的整个过程,最终实现JaveEE项目的自动化、自助式的版本增量工作,提升版本管理工作的质量和效率。

【关键字】 自助发布 自动发布 持续交付 持续继承 版本管理 福富

一、现存问题

CRM,客户关系管理系统,业务特点是开发周期长,补丁次数多,需求要求紧,重复工作量大,每次发布均要做大量版本管控和准备工作,以确保补丁版本发布的准确性和及时性,目前主要采用人工增量完成版本迭代,存在以下问题:

1.研发提交不规范,存在错、漏,影响版本质量;

2.研发与配置间沟通不畅导致版本质量下降;

3.配置人员不够细心导致产品版本存在错、漏影响质量;

4.配置工作机械性、重复性工作大,压力大;

5.配置工作效率低下,延迟版本准备。

那么,如何做好产品的版本准备就成为一个亟待解决的紧迫问题。

二、方案与思路

经过综合分析、考虑,主要有三个方面诉求:一、限制研发确保提交版本的准确性,二、减少配置人员工作量,提升工作效率释放人员,三、辅助日常项目管理。

需要包含以下功能模块:版本规划管理、代码质量管理、自助增量管理和项目辅助管理。

2.1版本规划管理

对产品版本的规划,确认版本需要包含哪些补丁,以任务单为颗粒度,任何代码的提交均需要有任务单,确保任何一个代码可追溯。

2.2代码质量管理

1)控制代码必须使用插件方可提交,方案是在svn服务器上增加钩子脚本,对所有提交的代码验证,必须包含某特殊字符,如:”$”或其他特殊符号,凡无该符号,一律不允许提交。

2)开发eclipse客户端插件,引入svn开源框架,利用svn的api对研发提交的内容进行识别和记录,记录的主要内容为:任务单号、文件路径、名称、差异部分内容、涉及行数(增、删)内容等,便于在后续的版本打包、自助增量和项目统计使用。

3)插件提交页面,“提交代码”按钮增加自定规则校验功能,支持java、js、正则表达式多方式校验,提升代码质量。

2.3自助增量管理

通过自助式增量、编译、打包和受控等几个环节,解决配置人员工作量大、重复机械劳动、配置质量低、研发与配置人员沟通不畅导致版本质量等问题,主要实现功能如下:

1) 开发WEB页面(可集成在Eclipse),提供研发人员日常的工作任务:代码上传、解压、编译和受控等几个步骤,每个按钮提供相应的处理逻辑,针对研发人员提交的增量压缩包进行处理。

2) 提供研发人员自助上传增量补丁包功能,利用svn框架采集的信息,识别增量补丁包提交的文件数量、路径和文件内容等,对增量包内容进行逐一验证,从而降低研发人员提交代码错、漏的情况发生,提升增量补丁包质量。

3) 提供自助一键编译和受控功能,编译功能,主要是通过调用maven开源框架提供的api对项目代码进行自助一键编译。在编译通过后,通过调用svn框架的提交功能,实现版本的自动受控功能。

2.4项目辅助管理

这里,主要是开发统计页面,利用各个环节产生的配置管理员版本制定记录,研发人员提交记录、编译成败记录等,对研发人员工作成果进行统计,辅助项目管理,初步评估员工、团队的绩效。

有了上面四个大模块的功能,项目组即可利用本工作平台,初步实现了释放配置人员、提升版本质量、固化增量流程等目标。结合后续的Jenkins进行持续继承,Selenium+RF自动化测试和灰度发布等技术,即可实现版本的持续交付工作。

三、总结与展望

通过以上方式,为研发、配置人员提供了便利提升了工作效率,固化、规范了工作流程,释放了人力,降低工作压力,对研发提供补丁的准确性进行校验,提升版本质量,在版本持续交付过程中起到规范化、标准化、自动化的工作流程,并为进一步的持续集成和持续交付奠定了踏实的基础。

当然,主要是基于SVN,仅支持Eclipse插件方式控制研发人员的代码提交,暂时不支持Git,CVS等,且工具无法支持Netbeans和TortoiseSVN的界面方式进行控制,还有待进一步研究,提升该解决方案的通用性。

参 考 文 献

[1]《持续交付》James A.Whittaker/Jason Arbon,人民邮电出版社出版,2013年10月

[2]《Google软件测试之道》John Ferguson Smart,John Ferguson Smart,2011年7月27日

猜你喜欢
插件增量代码
研发信息的增量披露能促进企业创新投入吗
用好插件浏览器标签页管理更轻松
Поезд Харбин-Россия стимулирует рост китайско-российской торговли в провинции Хэйлунцзян哈俄班列拉动黑龙江中俄贸易增量
特大城市快递垃圾增量占垃圾增量93%
请个浏览器插件全能管家
基于jQUerY的自定义插件开发
神秘的代码
一周机构净增(减)仓股前20名
重要股东二级市场增、减持明细
近期连续上涨7天以上的股