保护开源项目 力斗害群之马

 
   | |

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

关键词:恶意 开发 代码开发

 
正在加载数据...

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

 
来源:The Register    作者:Cade Metz in San Francisco     译者:CSDN   
 
 
 
 
 

软件开发安全

 
创建安全性强的软件所需的各个准则的最佳实践是怎样的呢?BSIMM被认为是智慧和现行实践的汇集,这个模型使用了软件安全框架SSF来组织软件安全任务……
 
作为软件开发团队的成员,软件开发项目完成的期限是否迫使你的安全测试工作形同虚设?你将采取什么方式来减少编码中出现的bug?
 
什么是缓冲区溢出,它又是如何工作的?如何防范缓冲区溢出攻击?本文通过研究缓冲区溢出的工作机制揭露其如何展开攻击,并介绍了阻止缓冲区溢出攻击的方式……
 
微软本周拓展了其安全开发生命周期SDL项目,引入了新的模板来帮助IT部门和编码人员构建安全的软件开发,这种新的MSF-A+SDL模板是设计来将敏捷开发方法引入到……
 
如何选择和运用不同的软件测试方式呢?在“白盒测试”中我们介绍了白盒测试方式的特点和使用,本文中我们将介绍黑盒测试和灰盒测试的特点和各自的适用场合……

热门技术手册排行

 

虚拟专用网络 VPN(Virtual Private Network )能通过公用网络Internet建立一个临时的、安全的连接,是一条穿过混乱的公用网络的安全、稳定的隧道。VPN是对企业内部网的扩展,它可以帮助远程用户、公司分支机构、商业伙伴及供应商同公司的内部网建立可信的安全连接,并保证数据的安全传输。许多公司使用VPN向公司外部的员工提供企业网络接入。本手册将围绕VPN进行全方位的讲解。

 

“最佳实践”来自英文Best Practice。维基百科对最佳实践的定义是一个管理学概念,认为存在某种技术、方法、过程、活动或机制可以使生产或者管理实践的结果达到最优,并减少出错的可能性。学习应用IT企业安全的最佳实践,其实就是借鉴别人成功的经验,让自己在保护企业安全方面少走弯路。在本手册中,将集合IT业内关于企业安全的最佳实践,并不断更新,以期在企业安全防护方面提供帮助。

 

虚拟化是数据中心的流行技术,它起源于20世纪60年代。它是把昂贵的计算机资源的利用最大化的方式。典型的服务器的利用率不足40%,虚拟化可以更有效地利用技术资源,并节约固定费用。虚拟化的最大优势是,它允许管理员从中央区域为个人电脑和客户设备提供软件。虚拟化不需要管理员对一般任务进行分别考虑。服务器的关机可以带动多用户的关机。

 

黑客策略和技术一直都在进步。黑客还在继续开发新的攻击工具和黑客方法,来恶意访问系统并攻击你的网络,这样企业在开发和采取恰当的方法防御黑客的攻击就变得非常困难。《黑客攻击技术和策略》的技术指南将介绍黑客的内心想法,并帮助你理解恶意攻击者的动机,也提供了一些黑客攻击具体信息的方式,采用的方法以及企业应该采用的保护敏感数据的方法。这里将会提供大量黑客技术和策路的信息,例如允许黑客获取网络系统或者文件访问的系统特征探测。

 

假如你正在寻找一个漏洞扫描器,你可能已经遇到了大量的非常昂贵的商业解决方案,这些方案都有一长串的性能和优点。不幸的是,如果你和我们之中大部分人的情况一样的话,你一般根本没有运行这些奇特的系统的预算。你可能已经退而求其次,转向考虑使用像SATAN或Saint的免费工具。然而,你可能觉得使用这些工具是一种折衷的办法,因为它们的性能设置不能与商业解决方案相比。这时候你就应该学会使用Nessus! 2005年12月Nessus背后的公司Tenable Network Security Inc.发布了Nessus 3,引进了对该产品的全面检查。在写这篇文章时候的最近版本,Nessus 3.2是在2008年3月发布的。Nessus现在可以在多种平台上使用,包括Windows、各种版本的Linux、FreeBSD、Solaris和Mac OS X。以下是这次Nessus3中的重大变化: 下面将介绍如何使用Nessus工具以及Nessus工具的更新。

查看更多
 
 

登录TechTarget中国

关闭
本服务仅向TechTarget中国的会员开放,请登录或立即免费注册
登录Email
请输入您的登录Email
密码
下次自动登录