主题:【原创】也来说说Linux和Windows下的开发感受 -- 昔杨今雨
至于它的概念, 您只需要google一下.
这个问题简单回答一下, 搭建一个持续集成环境涉及的内容比较多, 例如:
1)首先你需要有代码管理, 例如cvs/svn/git;
2)其次你需要有自动编译环境, 需要从cvs啥的里面自动checkout指定的版本, 自动编译;
3)在编译过程需要有错误管理, 例如在遇到错误时, 是退出编译过程, 还是进入下一个模块, 编译错误通过什么方式告知这段代码的管理者, 是通过email, 还是发布的内部网站上,而且必须要有详细的错误信息, 便于程序员排查;
4)编译完毕后应该可以自动运行单元测试;
5)单元测试完毕后, 应该可以自动进行递归测试; 同样, 测试结果应该有report;
6)除此之外, 你可以还需要wiki, 需要bug tracker, 需要source code browser, 例如lxr这样的东东. 更进一步, 您可能还需要test case管理, knownledge management;
7)最后, 这些东东应该可以互操作, 例如bug tracker里面bug状态的调整, 应该email通知相关人员; 自动测试过程中发生的问题, 应该可以自动进入bug tracker.
为什么Unix下搭建这个环境比Window下更容易更成熟呢?
首先上面提到的各种工具, 其中的佼佼者(至少开源的软件)大多数是运行在Unix平台上的, 在debian下一个apt-get可能就可以安装完毕;
其次谈到互操作, 在Windows平台上简直就是恶梦, 你可以说出哪些Windows下的, 由不同公司或者团队开发的软件可以有深入的互操作的? 在Unix平台下, 再不济也有stdin+stdout+管道的方法. 更何况还有Unix平台的开放性, 原生的丰富多彩的script语言, 命令行的优势在这种情况下真是体现得淋漓尽致.
这么做的效果嘛, 就是现在我所在的公司, 技术人员就3个, 一个专职开发, 一个专职测试, 还有一个一开始也是测试, 现在应他自己的要求, 给他分配了一些编程的工作. 维护着20个以上的功能模块, 100万行以上的代码, 超过3000个test case, 完成一次递归测试只需要8-12个小时. 因此俺们的版本发布频率大约可以到1星期1次, 任何客户需求, 只要我们决定去做, 我们的反应速度不超过一个礼拜.
- 相关回复 上下关系8
🙂有请楼主详细谈一下持续集成 1 盲人泪 字224 2008-03-28 11:10:15
🙂已经在楼下回复了 1 昔杨今雨 字0 2008-03-29 07:43:22
🙂同望,以往似乎没有看到过这个概念 1 胡一刀 字0 2008-03-29 01:11:42
🙂持续集成, 原文是Continuous Integration
🙂涨见识 送花 1 鹰蓝 字0 2008-03-31 21:25:03
🙂送花,这个贴应该跟在主贴下面 1 万斤 字100 2008-03-31 03:53:53
🙂对这个话题感兴趣的人才会看到这么深 1 昔杨今雨 字22 2008-03-31 05:27:08
🙂谢谢,再继续请教 1 盲人泪 字216 2008-03-29 11:09:56