若是你想参与到开源项目中去,却又不知道从何入手,这里提供一些参考方法或许能给你提供一些帮助,哪怕你对你目前的技术还缺少自信都没关系。mysql
开源软件已经改变了IT,甚至整个世界,正是由于有了大家,乐于奉献在开源事业中。不幸的是,不少人把参与到开源项目中想象成一个难以跨越的障碍同样,所以而退缩。我一般听到人们说他们很想参与到开源项目中来,可是由于如下的3个缘由而打消了念头。程序员
我还不足够优秀 我没有足够的时间 我不知道什么样的项目适合我
寻求机会参与到开源项目中去,你应该知道的三个基本原则:web
项目须要各类能力层次的专业人才。 哪怕是微不足道的贡献也比没有好。 从你正在使用的项目做为参与到开源的第一步
我从开源项目中所观察到最要命的想法是那些新人总认为要成为某种类型的天才程序员才 能参与到开源中去,其实根本就不是这回事。固然,某些项目中的成员看起来就像摇滚明星,没错,他们确确实实是一个极具天赋的程序员,然而,咱们中的绝大部 分不是的。咱们仅仅是那些只要把任务完成的人。有时咱们作的付出的不需太多,有时咱们须要花大把的时间,有时它就是编程,而有时它不是。sql
对于大多数项目,邮件列表仍然是项目开发沟通主要的渠道。在一个规模比较大的项目中一般有不少邮件列表能够选择,例如:PostgreSQL项目就有很多于12个面向用户的邮件列表和6个面向开发者的。我建议你关注最主要的几个面向用户邮件列表以及核心的开发者列表。shell
博客通常由核心开发者维护,一般博客中包含项在将来版本的一些信息。如何获取这些信息呢?一般一个星级站点有包括来自不少相关项目的新闻或者博客词条,若是有一个星级站点,如:http://plant.gnome.org 或者 http://planet.mysql.com ,那么你要作的仅仅是用Google搜索”planet <项目名>”。编程
许多开源项目都有专门的互联网中继聊天(IRC)频道,用来为开发者和用户讨论开发问题。仔细查找项目站点中IRC频道叫什么。浏览器
Bug一般很难报告出来,诊断快速处置bug有助于节省开发人员的时间。若是用户提出报告:“当我操做XX功能时,系统没法工做”,你得花些时间解决这些问题。仍是不是会重复出现?例如该类问题是否只是发生在某种浏览器不兼容?只在发行版有这样的问题仍是其它的缘由。工具
一般bug在代码库中修复了,可是在问题追踪系统中还没更新。清理掉这些杂乱的东西虽然耗时,可是对整个项目来讲是值得的。测试
任何项目设计用于运行在多个平台时就有可能存在各类兼容性问题。当一个beta版或者候选版发布时,项目带头人但愿能在不一样的人和不一样的平台上获得测试反馈结果,你就能够是其中之一。网站
修复bug一般是贡献者开始接触代码的地方,很是简单,在问题追踪系统中找到感兴趣的bug,把bug修复,若是合适的话为代码的修复撰写文档。
绝大多数项目都有测试套件用来测试代码,很难想象测试套件中不能附加更多的测试在其上。使用测试覆盖工具诸如基于c的gcov、基于Perl的Devel::Cover,用来标识源代码无法经过测试套件测试到的范围,而后添加一个套件覆盖它。
许多基于C项目的构建过程当中常常会出现不少古怪的编译警告,这些警告一般不是错误,可是看起来像,太多的警告让编译器听起来就像在发假警报,仔细检查代码是否的确隐藏有bug。
当你在深刻研究代码时,你可能发现有疑惑的地方,若是感到疑惑,这对你来是一个机会,比别人也可能碰到一样的问题,给他们贴上注释提交补丁。
通常项目都没有太多入门的例子,不论是web API、普通程序库、或者是GUI应用如Gimp、仍是命令行工具,比起长篇的文档,一个恰当的例子可以更清晰更快速解释软件的使用方式。
参与到社区最好的方式是帮助别人。回答问题,尤为是那些初次涉及的,这对于一个项目的成长很关键,即便你回答只是简单地”RTFM”(read the fxxk manual),每一个人都要行动起来,项目若是要变得强大起来的话每一个人须要动员起来。
若是你有博客,写下你使用项目的一些经验,记录你碰到的问题及解决的方法。你能够经过两种方式来提供帮助,一个是记住你身边帮助过你的人,另外一个是记录下你未来可能会碰到的问题。
不少程序员在图形设计方面显得很是糟糕,尤为是那些不能从设计部门获得帮助的项目网站。若是你有网页设计方面的技能,不妨改进下网站,网站做为项目的招牌,是值得花时间的。或许项目界面须要完全改造,抑或仅仅是一个logo,这些是社区缺少的技能,若是我能提供一些图形设计上的帮助,我会很是喜欢的。
有太多的方式参与到开源项目中,哪怕是咱们写一个新产品的特性的历史回顾。每一个使用开源项目的人均可以把技术带到社区和帮助开源成为IT产业中重要的一部分。
编辑:张可