五千年(敝帚自珍)

主题:【原创】也来说说Linux和Windows下的开发感受 -- 昔杨今雨

共:💬203 🌺502
全看分页树展 · 主题 跟帖
家园 持续集成, 原文是Continuous Integration

至于它的概念, 您只需要google一下.

这样的一个持续集成环境,对操作系统的要求有哪些方面?Windows和Unix有哪些方面适合或不适合搭建这么一个持续集成的环境?

这个问题简单回答一下, 搭建一个持续集成环境涉及的内容比较多, 例如:

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次, 任何客户需求, 只要我们决定去做, 我们的反应速度不超过一个礼拜.

全看分页树展 · 主题 跟帖


有趣有益,互惠互利;开阔视野,博采众长。
虚拟的网络,真实的人。天南地北客,相逢皆朋友

Copyright © cchere 西西河