软件开发的过程为:用户需求 -> 需求分析 -> 立项 -> 设计 -> 编码 -> 提交代码至代码托管服务器 -> 编译 -> 构建 ->  打包 -> 测试(系统具备运行环境) ->交付

 

持续集成简单来讲就是把这个过程整合起来,让其自动化,尽量减少人为干预。将人力解放,投入到业务的设计、开发中。下面我来简单聊一聊我们在项目过程中是如何做的:

1.开发  

这个过程对项目管理的要求极高,要在保证项目进度的前提下,保证质量,将项目成本控制最优化。有几个细节在此过程中比较重要,代码review,代码checkstyle(开发中、提交时),代码单元测试,任务输入,输出标准一致,开发、产品需求理解一致。

2.提交代码至代码托管服务器

不能允许所有形式的代码提交,确保编码格式,提交时svn会对其自动检查,不满足条件不让其提交。里面有很多细节需要控制,如果明天要发布版本,今天晚上同事写的代码不符合规范,你到底让不让其提交。这个问题需要通过策略以及评估团队的整体情况来执行。

3.编译、构建

使用工具jenkins,自动将svn上面的代码checkout,然后进行编译构建。

4.打包

使用工具install4j,对零散的配置文件,jar文件,jre环境,数据库配置文件,预定义文件等进行整合,打包工具针对Linux或者Windows平台能制作不同的X.sh或者X.exe的可执行文件。

5.测试

当我们拿到项目的可执行文件时,可以对系统提前录制很多脚本进行测试,执行脚本来测试我们在前面等步骤当中哪里有问题,如果此时发现问题,可能需要从第二步再重来执行一遍,直到将问题排除为止。

6.交付

将我们测试完成的项目安装文件,以及系统相关文档,交付给用户。

整个过程当中,我们使用到的技术为maven nexus svn jenkins install4j shell等。

 版权所有   LYUZH   zhuohenglv@126.com 

2 收藏


直接登录
最新评论
  • Yu_Hao 微信公众号: 一分钟的编程知识 2016/05/30

    这是在自己写文章吧。 提个小建议: 如果让大家认真读你的文章的话, 格式拼写之类的都认真改一遍。 像箭头符号 -> 写成 -》 是因为没有切换到英文输入法吧, 还有 jenkis 的拼写。 如果你自己都不想话时间修改这些, 怎么让人愿意花时间读呢?

    • LYUZH   2016/05/31

      确实有很多格式的问题,谢谢您的意见。

      • Yu_Hao 微信公众号: 一分钟的编程知识 2016/05/31

        那也没见你修改啊

        • LYUZH   2016/05/31

          找了半天没有发现,发布了可以在修改内容的按钮。

          • 小编辑 编辑 2016/05/31

            修改话题这块不完善,我们在改进中。这几天就会支持

            • LYUZH   2016/05/31 精华评论

              嗯,其实我觉得这个严重应该支持,除非你们有别的考虑。不过,如果支持这个的话,是否每次发布完成后的编辑都需要审核呢?否则审核又形同虚设了。

              审核会变得麻烦,不过质量会变高,相对过程就变得复杂,你们自己考虑。

              • 小编辑 编辑 2016/05/31

                重新提交还得审核一下。

                不过,声望提升到 5 以后,发布是不需要审核的。

                算是在努力寻找内容质量和用户体验的平衡点。

                • 请问小编  声望怎么提升?

                • LYUZH   2016/05/31

                  嗯,平衡点很重要,看来声望5就是一个平衡点哈,太高用户会流失,太低质量无法把控。伯乐这么久了,为什么现在才上线这个功能呢?不太理解。

                  • 小编辑 编辑 2016/05/31

                    之前的需求不多,毕竟小组的话题大部分都是几句话。长篇幅的分享最近越来越多,支持修改的呼声越来越高。

                    • LYUZH   2016/05/31

                      小编,我对这个需求提出来建议,并且分析了看法,总结了利弊,不知道满不满足加一个声望呢,呵呵,,,现在写文章有时第二天才能审核过,确实让我尴尬了。

          • 小编辑 编辑 2016/06/01

            已经支持修改了,试试吧 :)

            • LYUZH   2016/06/02

              小编,我申请了加入写作专栏,不知道是通过还是没有通过,没有反馈。

        • LYUZH   2016/05/31

          尴尬

  • Mr Li 测试开发 2016/05/31

    软件开发的过程为:用户需求 -》需求分析 -》 立项 -》设计 -》编码 -》提交代码管理服务器 -》编译 -》构建打包 -》测试(系统具备运行环境) -》交付

    你这流程有点老旧:

    测试工作如果真还只是在开发开发完成之后进行,那只能说你们测试团队不行。测试前移,讲求的就是要让测试尽早介入项目,把一些问题提前消灭在模块开发过程中等等。
    你提到的开发流程中也是比较老的模式,在一些自己做产品的公司,必须得实施敏捷。

    • LYUZH   2016/05/31

      嗯,文章中主要是对一般流程的讲解,在后续的文章中会继续加入基于原来流程的衍变以及应对方式,非常感谢您的回答。

    • LYUZH   2016/05/31

      希望能在后续的文章中看到您能更多的评价,谢谢。