写这篇主要想说明的一点,不一定非得贡献代码才算参与,有门槛更低的方式。
代码贡献特别是完成特定功能的代码,要考虑到设计、编码、自测和集成测试等一系列的工作,不应该作为新参与者的第一个目标。
以https://github.com/baidu/bfs为例,说下我建议的参与方式
1. 阅读项目首页的README.md,了解项目的情况概要,确定你是否对这个项目有兴趣。
2. 浏览下项目文档和issue,说不定能解决你的很多困惑。
3. 当前各模块文档都不是很充分,所以你肯定还有疑问,提个新issue,描述下你的想法。这一步是重点,因为这是参与到一个项目中来最简单直接的方式:提出你的问题或建议。
4. 根据架构图和src下目录,尝试弄清楚源码结构。
5. 找一个你最感兴趣的部分去阅读,将重点放在理解和发现其中小的错误上,无论是拼写错误还是注释(或文档)与代码不一致的地方,都是一个很好的点。
6. 不要犹豫,fork下,更正上面你找的的小错误,然后提出一个pull request,这是第二个重点,这时,你的名字就已经可以进入contributors列表了。
7. 发掘下项目在跨语言支持、跨平台方面的一些问题,然后解决他们,你就为项目发展做出了非常突出的贡献了。比如bfs当前只有c++的sdk,其他语言访问只能mount成本地文件系统,如果你能包装个python、php或java的sdk出来,将会非常受欢迎。
8. 在这之后,你就有很多的选择了,这已不是本文的重点,比如你可以结合对系统的理解,通过issue和大家交流后面的开发方向,去尝试一些更有挑战的功能开发,成为主力贡献者。