五千年(敝帚自珍)

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

共:💬203 🌺502
全看树展主题 · 分页首页 上页
/ 14
下页 末页
家园 持续集成, 原文是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次, 任何客户需求, 只要我们决定去做, 我们的反应速度不超过一个礼拜.

家园 我和你的看法想反

现在缺少精英程序员的更根本的原因我觉得有市场问题, 缺乏市场意识,导致程序员通过技术无法为自己获得更好的利益,那么在中国这种还要解决温饱的社会, 自然就无太多心思潜心钻研了。 至于你说的国外的大拿们如何如何, 我可以这么说,这种差距最大的根源是社会财富和科学技术实力本质上的重大差距。

另外,我恰恰认为,开源运动中国选手的缺乏某些方面也是这种市场意识匮乏的体现,当前市场的一个发展趋势,就是软件的免费化,然后通过服务和关联活动获取利益,这方面来说我们还非常的缺乏这种意识,也部分归因为国内软件行业生存状况恶劣。以我自身的经历来说,某开源库的1.2版本发布之前1年,我们就在项目中做出了同样的工作, 现在影响巨大的某开源库,在其正式发布之前,我们也已经有类似的东西投入实用,问题在于当时缺乏市场意识,没有想过也没有勇气通过开源来做大蛋糕获取利益。

软件的发展模式本身具有多样性,即便是2.0的兴起,也不能完全否定,取代其他客观存在的机会和运作模式。

云风这个人我听说过,他以前就在我前面大厦上班。另外我以前同事里面有不少人是现在技术媒体宣传的所谓大拿, 和我前面提到的那个人相比,技术上差距是巨大的。我认识一个人是海归,技术上相当不错, 但是管理能力(这个貌似在技术人员里面比市场问题还严重)和市场意识严重匮乏,差不多10年,他一直努力在搞一些所谓前瞻性质的产品研发,试图弄出一个国内一流的产品,实现他的远大理想,先后说服几家公司和政府投入了巨额资金,一直看不到什么效果,有趣是他带出来的一个小伙子,自己跑出去弄了个小东西出来,还相当有影响,各方面都可以跟鬼子的东西比一比,真正走了小而精的发展模式。

基于现在的人力资源匮乏, 精英程序员和浆糊程序我都不反对发展,不就混口饭吃么,需要上升到什么高度么。

家园 呵呵, 送朵花安慰一下, 不过也不要矫枉过正啊
家园 你记得没错,有本关于idsoft的技术天才头脑卡马克的书

叫做什么来着,我忘了,只记得一件事情,这小子是个天才,会说的第一句话就是一个句子,不是一个单词。。。。

后来还业余搞自制火箭上天,我的妈呀。牛B的很。

我以前特别爱玩Quake,所以对此有些了解。

家园 至今没看到有产生天才的土壤

精英程序员,也不会产生。 十年内。

家园 好像有点跑题了, 不过这种跑题我觉得更有讨论的意义

我以前和一位在政府供职的人聊天, 他提到很久前(80年代?), 他们接待cisco的全球副总裁. 和副总裁一起来的, 还有一个人, 派头比副总裁还要大, 一问才知道, 原来此人是IOS的主创人员. 国内的程序员有几个是以他为职业目标的, 恐怕大多数还是以副总裁作为职业目标吧. 出不来这样的人也就不奇怪了.

另外如果您把开源运动归结为因为有较强的市场意识, 我觉得您就有点本末倒置了. GNU的产生是因为RMS有很强的市场意识? 如果是这样的话, 哪里有必要一开始就着手开发gcc这种短期根本看不到效益的东西?

对开源我有一些体会, 在sourceforge上有我一个小项目: http://swat.sourceforge.net. 已经很久没有更新了. 从事开源项目给我带来最大的快乐在于: 1)没有时间表; 2)不必过多地担心向后兼容, 想变就变, 你看linux的kernel, linus在故意这么干, 因为他想给商业公司添麻烦; 3)分享, 然后收到千万里之外的赞扬总是让人高兴的. 4)玩呗. 这里面恐怕也没有市场意识什么事. 我相信sf上的contributor里面, 像我这么想的人可能会更多一点.

(这个project之所以不再发展, 是因为我发现已经有了更好的开源替代软件 (直接做在firefox里面). 这也说明, 即使我有很强的市场意识, 技术上跟不上也没有活路)

您的其它观点我都同意.

家园 去年听过一次云风的讲座,关于游戏开发的。

感觉这家伙纯粹是一个忽悠,有人提问一个系统稳定性的问题,他居然说,不要紧,每天重启一次,我们老板允许的。

当然了,能够把老板忽悠住,这的确是大能耐。

家园 同感,国内不少大公司对于技术人员都有所谓的2条路线。

可以从技术上做下去,成为行业领域专家;或者改行做管理成;

问题是往往流于形式,常常一些管理人员因为政治斗争被排挤到技术线,结果还能评一个很高的技术级别。导致技术职称的含金量大大降低。

类似现在的高校的行政人员往往很容易拿到教授头衔,而真正做科研的都排不上号。

家园 已经在楼下回复了
家园 可不要小看中国程序员的能力喔

FREEBSD的commiter中有好几位是中国人.去FREEBSD.ORG可以看见这几位中国commiter的负责内容.有位David Xu是FREEBSD内核的开发人员.

国防科大的杨沙洲和章立嵩为GCC项目贡献了几万行代码.

LVS(LINUX VIRTUAL SERVER)项目也是国防科大的章立嵩创建的.

SkyEye项目也是中国人创建的.这个项目是为嵌入式开发提供一个Simulator.

还有Ext2Fsd项目,这个项目是为WINDOWS操作系统提供EXT2/EXT3文件系统的全功能驱动程序.作者叫做Matt Wu,通过EMAIL证实他也是个中国人.

其实不要认为APACHE等项目在技术上有多高不可攀.一个完整的受过计算机专业本科教育的人,只要付出时间和精力,都可以为这些项目贡献代码.门槛没有想象的那么高.国内很多程序员在应用开源库的时候,时常都会发现一些开源库的缺陷然后自己解决这些缺陷,或者是为开源库添加一些功能.区别在于,国外的程序员在解决问题后通常会把PATCH回馈到开源社区,而中国程序员由于语言以及精力问题通常都懒得跟老外打交道.因为PATCH提交了以后还得面对一些后续问题.

另,发点牢骚,国外的程序员的生存环境比之国内是要好的多了.国外程序员40,50岁的很常见,程序员是一个可以做一辈子的事业.而国内的程序员到了30,如果再不赶紧转为管理人员,以后就没有公司会要你了.所以国外程序员可以心无旁骛的钻研技术,工作之余还参加几个开源项目做贡献,国内程序员没几个敢这样,也没有几个有这么多精力,得忙着学管理呢.

家园 你不能给老板赚钱,老板要你当老板?

那是老板们考虑的问题. 可是作为程序员自身来说

家园 谢谢,再继续请教

为什么Windows下缺乏这样的工具?是Windows内核天生的不适合,还是软件公司认为给Windows平台开发这样的工具无利可图?

这是很不可思议的事,既然Windows的市场占有率这么大,而“持续集成”又是如此有效,这应该是很大的市场啊?

家园 这个你误会了

我决没有小瞧中国程序员的意思。相反我认为中国程序员是非常非常聪明的,可以作出一些让人惊叹甚至匪夷所思的成果。好像当年DOS上的汉化软件CCED是用几万行汇编程序一个星期开发出来的而且运行良好,这在国外都是难以想象的。你所列举的例子让人振奋,但我觉得在规模上,中国精英程序员至少从数量上还远远比不上国外。我十分同意你说的其实很多大名鼎鼎的软件技术上并不是特别高难,单独把每个功能分析一下,都不是很难,甚至可以说就是个力气活。但是难题往往在规模上,一个十万行的程序一个人还可以应付,一个百万行以上的程序就需要多人协作,如何组织结构如何管理并在品质上有保证就不是那么容易的了。日本人出了个RUBY,我是很希望看到中国也有类似的成果。

另外中国的技术精英大批分散于海外,在各大外国公司里默默无闻地充当技术中坚,这就回到你所说的体制问题。中国政府目前认识到自主创新的重要性,但是我感觉从政策到市场环境上以及社会风气上,还没有进入正常轨道。海外技术人员要回国仍然顾虑重重。

家园 我们所说的并不矛盾

上面并未谈到市场以及社会环境问题。开源项目我是拿来做个例子,我的意思是,尽管我们客观条件可能还与发达国家有差距,但至少在观念上,应当主动培养向高精尖方向发展的意识。而且中国虽然平均不行,但某些大城市实际已经接近发达国家的物质水平,所以观念上也应当有所突破。当然良性循环不是一蹴而就的事,是需要很长时间内慢慢改变的。

家园 高就不敢当

只是在无名小公司当IT民工而已

全看树展主题 · 分页首页 上页
/ 14
下页 末页


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

Copyright © cchere 西西河