普遍存在一种误解,认为为开源做贡献是困难的。你可能会想:“有时我甚至看不懂自己的代码;我怎么可能看懂别人的代码呢?”
放松。直到去年,我也是这么想的。阅读和理解别人的代码,并在其基础上编写自己的代码可能是一项艰巨的任务,但只要有合适的资源,它并不像你想象的那么难。
第一步是选择一个项目。这个决定对于将一个新手程序员变成经验丰富的开源贡献者至关重要。
许多对开源感兴趣的业余程序员被建议查看 Git,但这并不是最好的入门方式。Git 由拥有多年软件开发经验的超级极客维护。它是寻找可以贡献的开源项目的好地方,但对初学者并不友好。大多数为 Git 做出贡献的开发人员都有足够的经验,他们不需要资源或详细的文档。在本文中,我将提供一份初学者友好的功能清单和一些技巧,让你的第一次开源贡献变得容易。
理解产品
在为一个项目做贡献之前,你应该了解它是如何工作的。要理解它,你需要亲自尝试一下。如果你发现这个产品有趣且有用,那么就值得为其做贡献。
通常,初学者在没有首先使用软件的情况下就尝试为一个项目做贡献。然后他们会感到沮丧并放弃。如果你不使用该软件,你就无法理解它是如何工作的。如果你不知道它是如何工作的,你如何修复错误或编写新功能呢?
记住:先试用,再破解。
检查项目状态
项目活跃度如何?
如果你向一个无人维护或休眠的项目发送拉取请求,你的拉取请求(或 PR)可能永远不会被审查或合并。寻找有很多活动的项目;这样你将立即获得关于你代码的反馈,并且你的贡献不会被浪费。
以下是如何判断一个项目是否活跃的方法
- 贡献者数量: 越来越多的贡献者表明开发者社区对此感兴趣并愿意接受新的贡献者。
- 提交频率: 检查最近的提交日期。如果是在最近一周内,甚至最近一两个月内,则该项目正在被维护。
- 维护者数量: 维护者数量越多,意味着有更多的潜在导师来指导你。
- 聊天室/IRC 的活跃程度: 繁忙的聊天室意味着你的疑问可以得到快速回复。
初学者资源
Coala 就是一个开源项目的例子,它有自己的教程和文档资源,你还可以在那里访问它的 API(每个类和方法)。该网站还具有吸引人的 UI,让你想阅读更多内容。
文档: 所有级别的开发人员都需要可靠、维护良好的文档来理解项目的细节。寻找在 GitHub(或任何托管它的地方)和一个单独的网站(如 Read the Docs)上提供可靠文档的项目,其中包含大量示例,可以帮助你深入研究代码。

教程: 解释如何向项目添加功能的教程对初学者很有帮助(但是,你可能不会为所有项目找到它们)。例如,coala 提供了 编写 bears 的教程(用于执行代码分析的 linting 工具的 Python 封装器)。

标记的问题: 对于刚刚开始弄清楚如何选择他们的第一个项目的初学者来说,选择一个问题可能是一项更艰巨的任务。标记为 “difficulty/low”、“difficulty/newcomer”、“good first issue” 和 “low-hanging fruit” 的问题对于新手来说可能是完美的。

其他因素

-
维护者对新贡献者的态度: 以我的经验来看,大多数开源贡献者都渴望帮助新手加入他们的项目。但是,你也可能会遇到一些不太热情(甚至有点粗鲁)的人,当你寻求帮助时。不要让他们让你气馁。仅仅因为某人拥有更多的经验,并不意味着他们有权粗鲁。还有很多其他人愿意提供帮助。
-
审查流程/结构: 你的 PR 将经历经验丰富的开发人员和你的同行的多次审查和更改——这就是你学习软件开发最多知识的方式。具有严格审查流程的项目使你能够通过编写生产级代码来成长为一名开发人员。
-
强大的 CI 管道: 开源项目向初学者介绍持续集成和部署服务。强大的 CI 管道将帮助你学习如何阅读和理解 CI 日志。它还将为你提供处理失败的测试用例和代码覆盖率问题的经验。
-
参与代码项目(例如 Google Summer Of Code): 参与组织表明他们愿意致力于项目的长期发展。它们还为新手提供了获得真实世界开发经验并获得报酬的机会。大多数参与此类项目的组织都欢迎新手。
14 条评论