与开发者交谈并阅读有关开源的文章时,我经常感觉到,普遍的看法是开源仅仅是关于代码和提交。换句话说,“如果你不为项目提交代码,你就没有为它做贡献。” 或者他们是这么说的。但在我看来,这种看法与事实相去甚远。让我告诉你为什么。
当然,代码是最终交付的产品,并对开源项目的用户产生直接影响,所以是的,提交和代码很重要。但这绝不是你为项目做贡献的唯一方式。项目大多是一个完整的生态系统,它不仅仅是代码。这里有一些你可以为项目做贡献的其他方式。
报告问题
如果维护者不知道问题,他们就无法修复它们。因此,至关重要的是,你要报告你遇到的问题,而不是仅仅放弃使用该项目或只构建一个变通方案。大多数项目都很乐意收到问题报告。也不要轻视报告问题,通常需要花费大量时间来编写一份好的问题报告。理想情况下,问题报告应包含重现问题的代码、关于预期结果和实际结果的信息、系统信息、版本信息,以及可能的堆栈跟踪或类似的工件。我也喜欢在其中加入一点对维护者的感谢,但这并非强制性的。请记住,问题不一定与错误有关,它们也可能与可能的改进或期望的功能有关。GitHub 甚至承认问题的重要性,它会为你打开的问题提供贡献积分——太棒了!
编写文档
文档非常重要,但通常很缺乏,因为很多人真的不喜欢编写文档。通过使其他人更容易上手,这是一个帮助项目的好方法。而且,如果你发现很难上手一个项目,试着改进文档,这样下一个人就会比你更容易。我实际上在 Ruby 上有提交——它们都是文档提交。
改进网站
许多开源项目都有自己的网站。有时信息过时了,有时只是纯粹的丑陋。我记得旧的 shoes 网站——它真的很丑陋,看起来像死了(至少这是我第一次看到它时的想法)。但看看现在!它看起来很漂亮,很体面。这大部分要归功于 wpp——他从未向 shoes 提交过代码(据我所知),但这无疑是对 shoes 的巨大贡献。
主动提供艺术/设计方面的帮助
很多项目都希望更新他们的徽标,为他们的网站获得一些插图或类似的东西。所以,如果设计或插画是你的专长,也许可以去你最喜欢的项目,问问他们是否需要这方面的帮助?我知道我会非常乐意接受这样的帮助!
试用预览版本
开发者需要反馈来了解他们的软件是否正常工作。因此,经常会发布 alpha、预览版或候选发布版。去获取其中一个并试用一下。如果一切正常——太棒了,你刚刚确保它在你的系统上可以工作!如果你发现了一个错误——报告它!这对项目有很大的帮助。
参与讨论
有时会有关于 API 更改或可以改进实现方式的讨论(以及其他事情)。非常欢迎评论,维护者希望得到他们用户的意见。我曾经花了一整天的时间讨论我在一个项目中发现的一些架构问题。这很有趣。其他工作可能是制定路线图——Eric Watson 有一天为 Shoes 4 做了这件事。他是一位伟大的程序员,但该路线图对项目的帮助比他在类似的时间框架内可以编写的任何代码都要大。他的路线图后来成为非常有用的指导和参考点。
回答问题
关于项目的问题随处可见。无论是 Stack Overflow 还是项目的 issue 跟踪器。通过回答这些问题,你可以帮助其他人获得更好的项目整体体验。也不要忘记,问题可能暗示了项目存在问题。也许这部分的文档可以改进,或者可能存在可以自动化或值得更好 API 的常见任务?也许你可以参与进来做这件事?
就项目发表演讲
有很多很棒的项目,但开发者只有在了解它们之后才会采用它们!如果你真的很喜欢一个项目,可以考虑在当地的用户组就此发表演讲,或者为会议提交一个演讲。这样可以提高项目的采用率,为项目带来更多的人,使其成为一个更好、更稳定的整体产品——让每个人都受益。
结束语
如果你已经做了以上任何一项:谢谢你! 你为开源做出了贡献。如果你喜欢,请继续这样做,如果还没有,不妨尝试一下。如果你想开始为开源做贡献,我写的这篇文章可能会派上用场。就我个人而言,为开源做贡献对我来说是一段非常棒的旅程。我非常享受它,并以这种方式结交了很多朋友。
最初发布于一位年轻软件工程师的旅程博客。根据 Creative Commons 重新发布。
4 条评论