拥抱拒绝的 3 大理由

不要让恐惧阻止您为开源项目做贡献。
505 位读者喜欢这篇文章。
The Opensource.com preview for January

Thomas Hawk 在 Flickr 上发布。CC BY-NC 2.0

在为开源项目提交任何代码之前,我曾作为一名软件开发人员专业工作了九年。并不是我不愿意参与。相反,是我对自己的怀疑和对被拒绝的恐惧阻止了我做出贡献。

2006 年,我下载了 Bazaar 版本控制系统和一些 Ubuntu 代码,在本地进行了更改,然后放弃了我的项目。后来,大约在 2009 年,Hibernate 创建者 Gavin King 在我们当地的 Java 用户组做了一次演讲。我很有兴趣为这个项目做出贡献,因为我们在工作中使用了它,但是在下载了 Hibernate 的源代码并查看了错误存储库后,我再次感到害怕。我担心对我提交的代码的回复会是,“谁让这个代码糟糕的女人认为她应该向我们提交代码的?!!” 然后我幻想到一个禁止名单在开源社区 IRC 频道中传播,上面写着我的名字。

然后有一天,当我在 GitHub 托管的一个框架上工作时,我偶然发现了一个文档中最简单的错误:单词 “but” 应该被输入为 “bug”。我不知道为什么,但我 fork 了这个项目,修复了 markdown,并提交了一个 pull request。令我惊讶的是,维护者接受了它。

在那之后,我遇到了 NGrok 版本和 GitHub 文档之间的差异。我提交了另一个 pull request,这次维护者提出了问题。我想,“哦不,对抗!” 他们说旧文档对他们有效,所以我解释说,可供下载的 NGrok 版本需要一个额外的命令行参数。一旦验证了这一点,我的另一个提交就被接受了。

我很高兴继续提交 pull request 并支持开源项目……直到我被拒绝。这是我犯的一个简单错误:当我保存代码时,我让 IDE 中的格式化程序保持开启状态,这改变了所有格式。我修复了 pull request 中明显的错误,并再次获得了接受。

多年来,我对被拒绝的恐惧阻止了我为开源代码做贡献。但是,一旦我认识到好处大于代码被拒绝的失望,我就失去了很多恐惧。我很高兴我这样做了。

拥抱拒绝的三个理由

  1. 您会学到一些东西: 确保代码库的清洁和存储库标准是存储库维护者的工作。不解决问题或只是权宜之计的代码应该被拒绝,但要以提交者可以从错误中学习的方式拒绝。存储库标准也是如此。虽然拒绝主要使存储库受益,但对您来说仍然是一次极好的学习经历。将其视为您在以下方面成长的场所,例如了解存储库的工作原理、学习您不常用的不同工具或发现解决问题的不同方法。
  2. 您会变得坚强: 拒绝将通过硬化您的外壳来帮助您。退后一步,反思代码被拒绝的原因。如果是由于愚蠢的错误,请认识到错误会发生,然后运用您的自我原谅能力并解决问题。是因为不理解代码库或代码标准而被拒绝吗?进行更改并记住它们以供将来提交。通过每次拒绝来成长和学习,并硬化那个外壳。
  3. 您将变得更具说服力: 拒绝的另一个好处是学会将变成。我最喜欢的故事之一是关于 Clayton Anderson,他一生中最想成为一名宇航员。他被 NASA 拒绝了 15 次,最终才被接受,然后他成为少数几个被选中进入太空的人之一。坚持不懈地朝着解决方案努力,然后努力将他们的否变成是。

颠覆您的恐惧

正如一句经常 归功于马克·吐温 的名言所说,“我一生中有很多担忧,但大多数都没有发生。” 当您认识到对被拒绝的恐惧正在阻碍您时,您可以颠覆这种恐惧。告诉自己,您每个月都会做一些有被拒绝风险的事情 X 次,然后按下按钮。据我所知,开源中没有秘密的“禁止贡献者名单”,而且我合作过的每个人都非常支持。

您可能没有注意到,但在整篇文章中,我一直小心地指明它是您的代码被拒绝,因为我想让您意识到一件事:没有被拒绝,只是您请求的更改

就我而言,即使我靠编写代码为生,我也非常害怕被一个匿名社区拒绝,以至于我不愿意为他们免费做任何事情。认识到这种对拒绝的恐惧,消除它,并无论如何都要提交 pull request!

Ann Addicks 将在 6 月 23 日至 24 日在亚特兰大举行的 We RISE 女性技术大会上举办题为 Commit to Open Source 的研讨会。

User profile image.
Ann Addicks 拥有 10 年的软件开发经验,使用过包括 PHP、Python、Jython、Java、JavaScript 和 Golang 在内的多种语言。她喜欢教她的孩子们编程,特别是用手指数二进制。她欢迎您在 Code Fights 上挑战她!

6 条评论

很棒的文章。虽然我从未提交过代码,但我也以其他方式体验过对被拒绝的恐惧。一位朋友曾经说过,“不要鄙视消极的东西。” 我逐渐相信了这个公理,因为这些消极的东西指引了我需要前进的方向。

感谢这篇文章;我非常同意。我做过的最好的事情就是下定决心积极寻求拒绝。一旦我开始这样做,我对特定结果的期望降低了,我的信心提高了,而且我最终经常成功而不是被拒绝。

说得好!我希望我有一个像你这样态度的心灵导师,在我的成长过程中引导我走同样的方向。

回复 作者 sethkenlon

拥抱拒绝的第四个理由

- 有些项目做事方式不同。仅仅因为您的代码格式正确并且 *您* 认为这是一个很棒的新功能,它可能不符合项目维护者期望的愿景和路线图。

这并不意味着您没有一个好主意,这只是意味着该特定项目暂时对此不感兴趣 - 这没关系。这就是开源的全部价值,不同的社区可以共同努力进行不同的工作。

另外,本文的另一面是:如果您是开源维护者,请不要担心拒绝提交 - 但请礼貌地拒绝!用“RTFM!”之类的评论拒绝提交不仅会赶走那位贡献者,还会赶走其他人。花 2 分钟写一个礼貌的理由说明您为什么要拒绝提交是欢迎新贡献的项目的标志。

感谢分享!

知识共享许可协议本作品根据知识共享署名-相同方式共享 4.0 国际许可协议获得许可。
© . All rights reserved.