欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

不用写代码 你也能为开源作出贡献 博客分类: 其他 百度LinqGoogle生活活动

程序员文章站 2024-02-14 09:17:28
...

译言最近几天挂了,把原来翻译的一篇文章挪过来

-----------------------------------------------------

 

简介
      开源项目在国外已经成为了一股热潮,已经开始影响到日常生活的方方面面,可是在中国,开源项目的使用者不少,贡献者却寥寥无几,但同时有很多人想要参加开源项目,却总是不得其门而入,此篇文章是一个开源项目的开发者所著,通过这篇文章,详尽地告诉我们,参与开源并不是那么难,通过很简单的方法,我们就能找到参与开源项目的钥匙。同时,借这篇文章,希望国内的人能够更多地参与到开源的活动当中来,你们的贡献,将为这个世界增添更多美好。

 

      有时我跟一些人聊天,经常听到这样的声音:“我喜欢开源,特别是XX项目,我非常想为它做些贡献,可是我不知道怎么去做”。还有一些其他的说法,比如:“我不是一个程序员”,“我不理解这些代码,它们太庞大了”,“我不知道如何提交那些修改”等等。
      为了帮助这些人,我决定写一个小系列文章(总共3篇,本文是第一篇),来谈一谈如何为开源项目做贡献。希望这个举措能够帮到更多的人,让他们意识到,小小的努力也能为开源做出大贡献。


      我想谈一谈以下的几个主题:
      怎样做到不写任何代码也能为开源项目作出贡献
      怎样做到不了解开源项目的内部机制也能为其贡献代码
      怎样为开源项目贡献代码 - 报告bug以及创建代码补丁


      这系列文章将包含非常多的实际的东西让你开始参与开源。这个主题本身可以延展的很广,甚至人们可以就这个话题写本书,但为什么还要浪费时间来写书呢,有非常多伟大的开源项目等待你尽快参与。
      所以,当你找到一个非常喜欢的开源项目,可能它能帮你节省许多时间,或是将许多不快从你的生活带走,或者帮你省钱,你可能尊敬并且感谢这些贡献自己业余时间的人,以至于你可以享有这些成果。你感到你应该偿还他们,或是偿还整个社区,但你并不想或是不能完成看起来是最重要的事情,例如修复bug或是增加新组件等等任务,于是你选择了不参与这个项目。但你应该知道,撰写代码并非是回馈开源项目的唯一方法。甚至,无须写一行代码,你也能为整个项目做出很大的贡献,而这也只需消耗你小量的时间。


反馈
      给予反馈,这是非常细小的事情,但同样可以给开源项目以巨大的帮助。每一个开源项目,要想良好地运行下去,都需要用户的反馈。你希望新组件如何工作?你觉得现有的组件怎么样?在下一版本中,你最想看到什么样的新组件、新特性?项目怎样才会让你觉得逻辑性更强?开发者经常向社区提出这类问题,说出你的想法,你就能帮他们做出正确的决策。
      有些项目在uservoice.com上建有专门的网站,使用uservoice.com来提供反馈是非常简单的,只需要你点击即可表态。在google讨论组或是项目的博客上,可以提出更深入的问题讨论。占用你一小刻的时间,写一些反馈,可能会让你的观点大放光芒。反馈看起来事小,但却是最重要的事情,因为它保证了项目在朝着正确的方向努力。
帮助他人
      商业软件的背后往往是一些大的公司,他们雇佣了一些人员,针对产品撰写一些文稿。例如写文档,在杂志上发表相应的文章,通过写博客进行宣传,或是在会议上发言,写书,在论坛上答疑等等。可开源项目常常只有少量志愿者撰写代码,文档,写博,回答问题,而且他们往往是利用工作时间之余来做这些事情。
所以,你可以贡献你的一些时间,接手一些非编码的任务。例如订阅该项目的google讨论组,或者去一些你常去的Q&A网站解答别人对于该项目的一些疑问。如果有些问题,恰巧你知道答案,那么请回答那些提问者,而这也不会浪费你太多的时间,同时提问者会非常感谢你的帮助。通过说出来你所知、所想的,你将会更好地理解该项目,这同时会巩固你的专业知识,在社区中你也会赢得更多的赞同与尊敬。像*.com这样的站点,如果你的回答被提问者采纳,你还将获赠分数(类似百度知道)。


撰写文档
      如果你发现该项目某些方面使用起来比较费劲,而文档又不足以帮助你克服问题,你可以帮忙改善该项目的文档。许多项目以wiki的方式来撰写文档,这也意味着给你开放了编辑以改善它的权限。要记住,文档是人们产生问题时第一个会求助的对象。如果你写博客,你可以在博客中记录问题的解决方法,再将你博客中的相关部分增加到文档中,保证你撰写的方式与文档规范一致,并保持文档跟得上项目的进度,你会发现,改进文档是如此轻松简单。
不仅仅是代码
      开源项目不仅仅是编码和文档,而是有很多事情等待你去做,比如,改善该项目网站的视觉效果,设计站标,这都是重要的工作,当然,大家也经常忽视这些问题。


写博,在用户讨论组会议中发言
      如果你拥有博客,请写一写与项目相关的文章,一些微不足道的问题,也请你写上具体的解决方案,如果解决这个问题花了超过15分钟,那么将它写出来就有价值,因为会有非常多的人碰上与你相同的问题。
      如果你喜欢这个项目,请帮忙做做宣传,让其他的人也加入。在你加入的用户讨论组中发表相关的话题,向人们解释这个项目哪些地方让你喜欢,它帮助你做了些什么事情,为什么你喜欢它。支持并宣传优秀的项目,会让更多的人参与进来,随着社区的扩大,会有更多的人了解它,使用它,并为它做出贡献。


捐款
      开源项目往往都是免费的,但是开发并维护它们可是非常耗费钱和精力的。很多人没有意识到,捐款能非常有效地帮助项目取得进展。如果你帮忙解决部分服务器主机托管与空间费用,硬件以及宽带费用,会让项目的维护者有更大的作为。
往往,开发免费的项目,而使用的开发软件不是免费的。你希望X项目发展Z功能的Y版本?那么请捐款让开发者可以购买Z的许可,这是最好的贡献。在许多与微软的软件相关的开源项目中,开源项目由非常多非开源项目组成,这种情况是非常常见的。
      捐款同时能让一些开发者全职进行开源项目的开发,最著名的例子是IMeta公司,该公司捐助了他们最优秀的开发者中的一位,让其全职在一个开源项目上工作了数月,以让LINQ支持NHibernate。