站长论坛 站长下载
您所在的位置: 站长中国 > 新闻资讯 > 站长故事 > 站长舆论 > 正文

保护开源项目,力斗害群之马
来源:CSDN  作者: 时间:2008年06月05日11:43:43  评论(0条) 字体:[ ]

  恶意开发者(译注:原文是 poisonous person ,即对项目有害的人,本文译作害群之马),可以是任何导致团队协作代码开发产生问题的人。从喜欢恶意地让项目走弯路的人,到把开发成果据为己有的篡位者,都是害群之马。

  曾经有个叫做 Subversion 的开源项目需要一个数据解析器。一天,一个程序员毛遂自荐写了一个程序。但是,他坚持要在程序里保留他的名字 John Hancock 的标签,这一点违反了开发原则。 Subversion 的启动人说,保留署名标签会破坏整个项目的协作性。

  Subversion 的启动人要求他去掉自己的名字,但是他拒绝了,并且威胁道要带着这个解析器的源程序离开项目。事实上,这的确是个非常好的解析器,而且十分符合整个项目的需求。但是,(Subversion 的)启动人仍然坚持自己的原则。于是,这个程序员带着解析器的源程序走了,过后也没有提交过任何补丁。六个星期后,另一个程序员来了,说他也可以写一个数据解析器。

  Brian Fitzpatrick 和 Ben Collins-Sussman,两位 Subversion 的启动人,坚信开源项目一定是包含了大量公共要素的。在项目进行中就要控制好这些公共要素,以免像挤公交时人数过多而发生危险一样,导致开发进度崩溃。他们认为,一个简单的控制项目公共要素的方法就是,从开源程序里去除开发者的名字。

  (译注:原文中 bus factor 即指公共要素,比喻了开发过程中的一些共同因素。如果挤上 bus 的 factor 越多,bus 就越不稳定,所以要控制好 bus factor ,以免问题发生。)

  “你要制止开发人产生‘这是我负责的模块,我写了这些程序,每个改动都要通过我同意’的想法。” Collins-Sussman 如是说。“这种想法对程序的整体性来说是很危险的。”

  这可能意味着错过一些十分有价值的代码提供者,同样也会错过那些源代码。但是当最终程序发布时,通常会有更多的提供者参与进来,同样这也意味着更多的优秀源代码的加入。“长痛不如短痛,决不能牺牲项目的健壮性来保留当下的瑕疵。”

  这不过是 Fitzpatrick 和 Collins-Sussman 的教训之一,这两位长期从事开源项目的技术人现在正在 Google 交流他们的开发经验。(译注:原文写于会场进行时间。)这两位开发者在旧金山的 Google I/O developer conference ( Google I/O 开会者大会)上作了一个“怎样从害群之马手中拯救整个开源项目”的演讲。

  恶意开发者(译注:原文是 poisonous person ,即对项目有害的人,本文译作害群之马),可以是任何导致团队协作代码开发产生问题的人。从喜欢恶意地让项目走弯路的人,到把开发成果据为己有的篡位者,都是害群之马。“要提防任何扰乱你,排斥你的人。”Collins-Sussman 说。“有些人名不见经传,但是有些人却是优秀社区的名人。世界上最优秀的开发者往往是完美主义者,要么就是控制欲强的人:他们只会让你陷入无穷无尽的讨论之中。”

  这两位 Googler 开发者说,成功的开源项目立足于“专注”,而且要不惜任何代价来保护开发成果。“如果有一群人都在捐钱,却来了个人开始从中抽取利润,这就是件十分令人头痛的事情。这时你就得叫警察了。”Fitzpatrick 说。“专注是开源项目的命脉。”

  这些听起来有些老生常谈,但是 Fitzpatrick 和 Collins-Sussman 提出了更多的建议来减少这些害群之马的负作用。

  1,启动项目之初,仔细定义项目的目标,并且发布到受关注程度较高的网站上。“发布在网上表明其官方性质。”Collins-Sussman 说。这句话引发了一些开发者的会心之笑,但是 Fitz 也被他们指出这不过是掺杂了一些实事的笑话罢了。“如果你通过 Email 发布了项目,开发者们会一直为此争议几个星期。但是如果你花些时间把它公布到网站上,他们就马上把它当回事了。”(这句可能是 Fitz 说的。)

  2,更改目标说明:“为 CVS (版本控制系统)建立一个强制复位系统。”Collins-Sussman 说。正因为有了这个独立的系统,才能吸引合适的开源提供者来关注这个项目。

  两位开发者提倡,要让讨论一直保持在最小但是最有利的状态。这包括一个完美的 Email 系统,和可伸展的项目历史文档。这个文档中应该包含所有开发过程中的讨论,代码修改,重要的修订及错误记录等等。“如果不把项目开发历史整理成文档,你就会陷入不断(向其他人)重复开发过程的无用循环。”

  他们继续道,即使在讨论以前没有讨论过的问题时,也要得懂得适时制止讨论。“我们曾有个开发者一直不停地谈论着同一个细节问题,结果我们根本不知道该怎么处理。”Fitz 回忆道。“于是,最后我们告诉他,放下这问题去做下一步工作吧。这句话奏效了,他接受了我们的建议。”

  他们说,开源文化精髓应该是自我选择。换句话说,就是要坚持目标。(即坚持开发初衷,让项目自己选择合适的开发者和及其他内容。)如果人们不喜欢这个项目,他们会主动离开——至少,大部分人是会离开的。不过仍然会有制造麻烦的家伙们留在开发组里,所以这时就得当心这些莽莽撞撞的家伙。也就是说,得主动让他们离开项目。这同时适用于项目的奠基人和那些天才们。

  在 Collins-Sussman 的项目受到严重威胁,即将导致崩溃时,他踢走了一个知名的“天才”。他认为这是整个项目中最为关键的决定。他说,天才不如团队合作重要;而在现代社会,天才程序员反而是屡见不鲜的。(译注:寻找开发天才不如提高团队合作性。)



责任编辑:
上一篇:没有了
下一篇:没有了
收藏本文 打印 打印本文  推荐本文 告诉好友 投稿 投稿邮箱

站长排行

新闻

学院

专栏

盈利

全国哀悼日网友自发QQ隐身上线 向死难
淘宝网卖家公然叫卖“艳照门”照片集
抗震救灾/鱼目混珠?
Google绿色专家质疑黑色背景网页节省资
阿里妈妈广告卖主全攻略
电影小说类相关关键字搜索量列表
爆笑 阿里就这样把亿告征服!
大脚:实战单页面优化关键词之——淘宝
国内各IT企业办公环境揭秘(多图)
心系灾区,点燃希望——手机QQ2008祈福
[揭密网络黄链]中国留学生买凶专破日本
windows 2008中文版iis7+asp+php+Acces
贴吧发帖机使用教程(绝对原创)
超强弹出窗口代码,什么都挡不住
qq163音乐网 vs hao123网址之家
Windows Vista局域网网络连接设置
JSP语法(6)
FLASH视觉特效实例之地震效果
教你如何在Vista中设置麦克风
关于数据分页(转自www.codeproject.co
ECSHOP模板制作参考文档
悬挂阿里妈妈会否被百度惩罚
ECSHOP模板下载
阿里妈妈是否是中小站长的救世主?
最强网店ECShop发新版 众多酷炫功能给
土豆网,优酷网,爆米花等视频网站采集
DedeCms模板安装/制作概述
网上商店系统巅峰对决 ECShop vs ShopE
编程中国全站采集规则
http://www.mt86.com全站采集规则
性福联盟 一个不尊重站长的联盟
百度网络广告利润增长将会持续多久
大脚:日赚100元—揭露最新firefox欺骗
分享经验:个人网站如何月赚1万!
大脚:垃圾站超级赚钱法之二—突破“站
迅雷联盟、快车联盟收入对比
大脚:垃圾站超级赚钱法之——前言
Google Adsense的秘密 第二版
风险投资公司vc联系方式名录大全(一)
经理人必看的十个管理网站
站长学院  网页设计 建站教程 图形图象 网络编程

制定完整的网站
制定完整的网站
中国企业网站的
中国企业网站的

偏词优化策略
地方门户网站受众群体分类及推
地方网站,亮出你的文化“剑”
地方性论坛如何发展?
安徽站长访谈第三期:务实服务
安徽站长访谈第四期:立足本地
地方网站的准备工作

新闻线索

如果你有站长界人事变动、重组并购、变革技术出现,以及产品投诉等重要新闻线索,请告诉我们,我们会给予特别关注。
0631-3653338
站长中国编辑部
站长中国24小时新闻热线: 1356089008