下载安卓APP箭头
箭头给我发消息

客服QQ:3315713922

定义开源项目的三个核心要素

作者:课课家教育     来源: http://www.kokojia.com点击数:1144发布时间: 2017-08-15 08:30:45

标签: Web开发开源项目开源技术

Web开发

  在过去的30年中开源走过了漫长的道路,而今已成为最流行文化的标识。每当提到开源项目,人们就会想到下面这些:管理结构、产品平台类型、编程语言、工具、技术细节、是企业赞助还是独立项目等等。

 在过去的30年中开源走过了漫长的道路,而今已成为最流行文化的标识。每当提到开源项目,人们就会想到下面这些:管理结构、产品平台类型、编程语言、工具、技术细节、是企业赞助还是独立项目等等。

  然而,什么才能真正定义一个开源项目,使之与其他开源项目区分开来呢?我认为可以使用以下三点核心要素来定义和区分开源项目:代码、社区和品牌。

  1.高质量的代码

  代码为王。产品的功能是由代码实现的,这也是开源项目构建的第一步:构建有用的代码。技术人员关注代码能做什么、它是如何实现的,市场人员更关注产品如何解决客户的问题,而当人们寻找一个开源项目来使用时,首先找到的便是代码。

  听起来很简单——既然这样我们为什么不能单纯使用代码来定义一个开源项目呢?软件开发人员众所周知,代码是变化的,并且具有临时性。开源项目中,代码很难跟踪,它不像公司主导项目的代码那样可控:开源代码是无限变换的。一旦你的代码提交到开源许可的公共库中,任何人都可以访问和修改,来实现他们各自的用途。当别人使用了你的代码并做了修改,它便不是你初始项目的一部分了。

  2.具有凝聚作用的社区

  如果代码指的是项目“是什么”,那么社区便代表了项目“是谁”——组建项目的那些人。项目的核心社区主要包含了那些积极推动项目的人。例如,编码的工程师,还有给予反馈和具体修改建议的终端用户;整体社区还包括了那些不做代码但是提供支持的人。比如,管理/进度监督人员,公关/市场人员,培训人员,财务人员或招聘支持人员等。社区规范,礼仪,和风气有助于区分一个开源项目。

  虽然参加有些开源项目可能是有偿的(如,企业雇佣的软件工程师,他们使用一定比例时间参加开源项目),但大部分开源社区的成员都是自愿无偿的加入开源项目。因此,成员们的去留都是兴趣使然,或根据承诺任务的增减,或雇主策略的改变。像代码一样,社区是不断变化的。

  不像企业的软件开发项目那样,可以计划招特定技能的人员做具体的工作,开源社区的参与是不可预测的,项目也不好控制。相对于有偿项目而言,个人冲突很容易导致成员离开开源社区。但是开源社区也有它的好处:有成员的热情和动力,有成功项目社区的持久力,还有大家对代码的同步和不断改进。

  3.具有宣传效力的品牌

  外部世界当然是通过品牌来了解开源项目的,当个人或公司选择使用或投资一个项目时,品牌帮助他们在同类项目中进行区别和参考。当然他们也会考虑其他的细节,但是通过品牌进行了解更容易些。比如,他们会考虑“我需要支持Hadoop么?”而不是想“我需要支持Cloudera版本,Hortonworks版本还是其他新发布的ODP?”目前,不收费的Hadoop版本主要有三个:Apache(最原始的版本,所有发行版均基于这个版本进行改进)、Cloudera版本(Cloudera’sDistributionIncludingApacheHadoop,简称CDH)、Hortonworks版本(HortonworksDataPlatform,简称“HDP”)

  “品牌”包括很多东西:项目的正式名称,项目或产品的Logo,甚至项目网站的外观和产品的用户接口。有些品牌的组件,甚至使用了具有法律效力的商标:包括官方软件产品的名称和Logo标志。

  不同于代码和社区,项目的品牌是一成不变的。没有法律授权的话,商标是不能随便使用的,即使社区成员变化,项目的品牌也不会随之改变。很大程度上讲,品牌和商标是最容易控制和维护的。然而,作为可定义项目独特性的重要工具,商标的使用却总是不被重视,经常被项目内部所忽略。考虑到任何人都可以获取代码,社区成员也来来往往的,因此,项目的品牌和商标是维持项目长久和独立、新项目成员继续项目的关键因素。

  另外,开源中国社区收录了大量的开源软件,您会发现,其中绝大多数托管在sf.net、GitHub、code.google.com等站点上。其实不错的开源托管站点还真的是不少。小编为您总结了如下国外知名的开源项目托管网站。

  托管站点Top20如下:

  1.SourceForge

  SF为大家所熟知,开源项目的大本营,SF托管至少28万个开源项目,一天的下载量超过200万。

  2.GitHub

  GitHub托管使用Git版本控制系统的公开和私有项目。目前该网站托管超过170万存储项目,包括许多开源软件。

  3.GoogleCode

  Google提供免费的使用Subversion或是Mercurial版本控制系统的开源项目托管服务。它提供2G的存储空间,整合了代码查看工具、wiki、问题跟踪。GoogleCode站点也提供了大量的Googe自己的APIs和其他开发工具

  4.EclipseLabs

  同样由GoogleCode托管,EclipseLabs是建立在Ecipse平台上的开源项目存储。提示,这些并不是官方的Eclipse基金会项目。

  5.BitBucket

  类似GitHub,BitBucket托管公开和私有项目。在这个站点上,开源项目和私有项目的用户少于5人,则免费。它托管了超过4.8万个项目,多数可在站点上搜索。

  6.LaunchPad

  由Ubuntu的东家Canonical维护,LaunchPad目标是运行在Ubuntu上的项目。它托管超过2.1万个使用Bazaar版本控制系统的项目。

  7.Codehaus

  Codehaus定义自己为“开源软件的协作开发环境”。托管需要审查,是否符合站点的声明。

  8.RubyForge

  从名字您就可猜出,它托管Ruby程序语言开发的开源项目,目前托管项目超过9000个。

  9.Tigris

  Tigris具有很强的专注性,仅限于“为协作软件开发创建更好的工具”。它目前包括700个项目。

  10.BerliOSDeveloper

  BerliOSDeveloper为各种类型的开源项目提供免费的托管服务,并且支持的语言众多。目前它托管的项目超过4600个。

  11.Savannah—GNU

  Savannah定义自己为“官方GNU软件的开发、维护、发行的中心”。它托管410个官方GNU项目。

  12.Savannah—non-GNU

  与Savannah-GNU相对应,Savannah-non-GNU托管其他类型的开源项目,总是超过2800个。

  13.Gna!

  如果你访问过Savannah项目,Gna!会非常类似,因为它使用同样的软件,并同样关注GNU相关的项目。目前它托管1350个项目。

  14.CodePlex

  由微软托管,Codepex提供微软开发的开源软件和一些社区项目。它提供下载的项目超过2万。

  15.java.net

  最早由Sun公司创立,Java.net托管和链接大量的Java相关的项目。另外,它也包括许多的博客、论坛和其他Java社区资源。

  16.Gitorious

  Gitorious提供使用Git版本控制系统的开源项目免费的托管服务。它托管了一些著名的软件,包括OpenSUSE、Qt相关项目。

  17.TuxFamily

  TuxFamily为开源软件提供免费托管服务,托管数量超过2300。提示,这是一个法语组织。

  18.KnowlegeForge

  KnowlegeForge规模较小,托管250个项目。它由OpenKnowledge基金会支持,使用多种版本控制系统。

  19.OSOR

  OSOR是欧盟站点,目前托管200个开源项目,链接项目超过2500个。该站点包含自由和开源软件的相关搜索和新闻。

  20.OW2

  OW2(theObjectWebForge)提供基础软件相关的开源项目托管服务,目前托管188个项目。

  小编结语:

  更多内容尽在课课家教育!

赞(14)
踩(0)
分享到:
华为认证网络工程师 HCIE直播课视频教程