拥抱拒绝的 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 条评论

很棒的文章。虽然我从未提交过代码,但我也在其他方面体验过对被拒绝的恐惧。一位朋友曾经说过,“不要鄙视负面的东西。” 我开始相信这句格言,因为那些负面的东西指引了我前进的方向。

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

说得好!我真希望在我成长的过程中能有一位像你这样态度 Mentorship 的人来指导我。

回复 ,作者 sethkenlon

拥抱拒绝的第四个理由

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

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

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

感谢分享!

© 2025 open-source.net.cn. All rights reserved.