“我想向开源社区贡献源码,但是该怎么做呢?”我经常看见很多很多学生在很多论坛里问这个问题。有很多种方式可以贡献源码,我列出了很多,希望能够对你们有多帮助。
贡献给现有的项目:
虽然你对于贡献源码感兴趣,但并不是所有的开源产品都会接受你。每一个产品都有一些编码和提交代码的规范,而你需要遵循这些规范。
你感兴趣的领域:首先选一个符合你的兴趣或者使用了你喜欢的编程语言和技术的项目。不要仅仅根据开发语言来选择你感兴趣领域的项目。仅仅通过了解Java你不一定能胜任游戏项目的任务,你应该对它感兴趣才行。
对项目进行了解:找到项目所在的网站,你可能会找到关于“如何参与项目”、“用户手册”等信息的链接。了解他们的指导方针,编码标准和补丁的验收标准。加入他们的开发和用户邮件列表。下载源码并且试着了解他们是怎样实现的。
提交者:每一个项目都会有一个或者更多的提交者。他们负责提交代码。你的代码应该通过他们提交。很多项目可能会要求志愿者们把变更过的代码发给提交者,有些项目可能要求发送代码补丁到项目邮件列表。但最终你的代码将通过提交者提交到项目的主分支中。
测试和文档:编写代码并不是参与项目的唯一方式。你可以做测试和记录bug。你可以帮助完善项目文档。对信息进行本地化或者将帮助手册翻译成其他语言。
参与到新的项目中:
寻找一些想法一致的人群然后根据你的想法开启一个新的项目。选择你的许可证的条款和条件。很多人就是通过开发新的开源产品获得了成功。
重复发明轮子:如果你没有任何独特的想法,那么你可以“重复发明轮子”。你可以尝试做一些别人做过的东西,但一定要加入特有的功能。应该跟别人的软件有一些独特之处和差异,这样才能让别人使用你的软件。很多人会倡导“不要重复发明轮子”,但是如果真是这样,那么在每个行业领域内将只存在一见产品。这不是同一个问题,通过“重复发明轮子”,你可以学到很多。
陈旧的项目:从Sourceforge或者GitHub这样的代码托管网站寻找一些陈旧的或者闲置的项目。该项目的***一项活动可能是一年或两年后。选择一个这样的项目,解决掉项目中的问题,然后赋予项目新的生命。
代码移植:很多人可能会对代码移植很感兴趣。如果你是一个Java程序员,你发现了一些用Python或者Ruby语言开发的有趣的东西,那么把它们移植到Java语言来。将代码从一项技术移植到另一项技术中。一个程序员不可能掌握所有的编程语言,移植好的项目真的会对你有很大帮助,而且很多人都会感激你的努力付出。
很多人有兴趣,但仅仅只是兴趣,很少有人会真正去做一些事情。一旦你开始做了,别人就会追随你的步伐。