我如何让软件二次开发变简单
2017-05-26 10:20 老鱼大哥 阅读(4181) 评论(0) 编辑 收藏 举报我是一名从事Java开发工作的程序员,公司在准一线城市,成立5年时间,ERP系统开发是公司业务中重要的一部分。前段时间我个人接手了一个ERP二次开发的任务,根据客户的需求对公司已开发的ERP进行改造来满足它的实际应用。前期的开发工作还是比较轻松的,轻车熟路的在现有的ERP功能中,对部分功能进行了删除,添加客户特定的功能需求等,根本不需要编辑大量的代码,开发进度及其顺利,这真是一份美差事!但是随着开发进度的推移,我的噩梦也到来了:
首先,问题出现在构建、部署、测试、修改bug再提交这个过程中,这也是我认为这个任务最耗时间的部分。我将代码在本地MyEclipse中修改完成后,继而打成war包,发送给公司负责部署的同事,他将war包部署发布在测试服务器上,提供地址供测试人员去测试,测试人员将测试后的bug表已Excel形式发送给我,我再对代码进行修改,再打war包。。。这简直是一个死循环。
![](http://upload-images.jianshu.io/upload_images/5609636-720911b1957c806f.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
其次,由于大多数客户初期并不知道自己想要的是什么样的ERP,只有在操作试用当中,才会发现他们自己真正想要的是什么,这个客户也不例外。我们将产品发布到外网,供他们试用时,他们几乎是每天都会对功能提出“建设性”意见,这里应该怎么修改,那里应该添加些什么样的功能。因此几乎隔一天都会拿到客户“新需求”,对系统的功能修改,再交付,那段时间的日子不堪回首,客户的要求是真的很多。
再次,偶尔会出现,周末甚至是晚上九十点钟的时候,由于某些限定条件,客户类似于导出Excel按钮失效这样一些小问题的发生(这里各位看客会提出疑问:这样的产品为什么允许给客户使用?因为我们不正规啊,因为客户急需啊,客户并不介意、要跟我们一起推进啊),我都会急匆匆赶回公司,顺带捎上我们的部署大师,没他我给客户部署发布不了啊,整的那段时间他对我敬而远之,最不想接到的就是我的电话。
就这样一直磕磕绊绊的过了一段时间,直到无意中接触到了华为软件开发云,仅仅经过半天的使用,我就被它给彻底征服了。帮我解决了很多的问题,在这里,我也把它推荐给跟我有同样遭遇的你们。
我主要使用的是流水线功能,然后就实现了只操作一次。我是这样做的:
1、通过git将我本地写好的代码上传到软件云的代码仓库中,配置及其简单,使用也很方便,在仓库中的管理也很直观清晰:
![](http://upload-images.jianshu.io/upload_images/5609636-cb1284a8774c85d2.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
2、根据上传的代码建立代码检查任务,目前应该是可以支持Java、js、web、css和C++,对于我来说完全够用,建完是这样的:
![](http://upload-images.jianshu.io/upload_images/5609636-2c575b4874c37283.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
3、根据仓库里的代码新建一个构建任务:
![](http://upload-images.jianshu.io/upload_images/5609636-c65dc8e459c98abd.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
六个步骤搞定,so easy!建完效果如下:
![](http://upload-images.jianshu.io/upload_images/5609636-e59ffd2b535ff8e9.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
4、根据编译构建生成的war包,建立一个部署任务:
![](http://upload-images.jianshu.io/upload_images/5609636-a08eb300b6bf56fe.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
只需要五个步骤的操作,轻松了不少:
![](http://upload-images.jianshu.io/upload_images/5609636-52b135d6fb473b06.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
5、重点来了,建立流水线任务,将之前建立的三个任务添加到流水线当中:
![](http://upload-images.jianshu.io/upload_images/5609636-3f1f531af8eaf1af.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
三步建完一个流水线任务,是不是很轻松?接下来的运行就是很简单的了,每次更新代码之后,点击执行即可:
![](http://upload-images.jianshu.io/upload_images/5609636-b3e423b12f33c8ed.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
通过流水线的功能,我要做的就是:编写代码,更新到代码仓库,点击流水线任务,有问题就改代码然后再更新仓库,运行流水线,就是这么简单,我不再需要反复去做重复的事情,不再需要去麻烦我的部署的同事。而且代码仓库还可以直接在线编辑代码,对一些小问题,在家就可以修改,然后重新运行构建部署,根本不需要再去公司解决,随时随地解决问题,这是一件很爽的事情。
毫不夸张的说,建立一次自动化流水线服务,受用终生啊!对我工作效率的提高不只是一点点,之前我遇到的那些都得到了妥善解决,自己一个人就可以完全搞定。
现在我已经熟悉了华为软件开发云这个平台,已经可以逐步分出一部分精力转移到其他的工作当中去,因为二次开发已经不再占用我过多的时间和精力。我甚至愿意多接一些erp二次开发的客户需求,因为有了流水线功能,一切信手拈来,老板都夸我能干!
另外,单独使用软件开发云的代码检查功能也不错,有1000条检查规则,凝缩了华为的研发经验在其中,还可以自由组合,再也不用担心我的编码问题了。添加到流水线当中,使流水线如虎添翼。