原来开源根本不是我想象的那样

原文出处 I thought I understood Open Source. I was wrong – Hacker Noon

我本来以为我已经理解了开源,但是我还是错了

不仅错了,还错得很深刻

不知道大家是否知道一句谚语:“你不可能下载到一辆车”。

在我小时候在当地电影院里我看到这句话太多次了,而且不得不承认,我一直觉得这很奇怪。

我的意思是,偷车和下载文件在我脑中有两个完全不同的效果:下载文件呢,你最终会得到两个文件, 一旦下载完成,就不会像偷车那样,让原来的车神奇地消失了。 那辆车呢,好吧,它总是只有一个。

当时的这种不协调很容易让我发现,我每天使用开源代码的做法让我感到奇怪,并且作为一个真正的维护者,我花了好几个月的时间来理解,我在这方面和我一样把现实世界和虚拟世界混为一谈。

我曾经作为一个用户与开源软件互动获得免费赠品。

在那里,我曾经说过:我曾经把这个库或那个代码片段添加到我的代码中,以便集成一个新的特性,如果出了什么问题,我会回到 GitHub 库,并提出一个 issue。 我会尽量多次成为一名优秀的 issue 提出者,但我也写了我的“+1/我也是”的评论。

我相信维护者,创建我所使用的代码的人,他们写出了一个很好的产品 —— 然后通过给他们反馈如何添加一个特性,或者要求一个关于某个 issue 的 ETA,这是一个合法而且标准的合作方式。 我期望他们会很乐意接受我的建议,并修改他们的路线图以适应我的意愿。

甚至当我开始帮助 react-navigation 的时候,我通过看到那些作为用户的人提出 issue 来保持这种“心态”。通过这样做,我做了太多的问题分类(并且处理了太多的“不良用户”),并试图让每个人“开心”,差点让我崩溃。

然后我加入了 GitHub 上的 Open Source Maintainers 社区,在这里我可以和很多聪明的,参与开源很多年的人交流。

然后就发现了一些事情。

我觉得我现在正正确地做对一件事,开源并不是“抢占”,而是恰恰相反。

“嘿,你看,我做出来了——如果你也想使用,这里就有实现。我根据我自己的需求做的东西,但是你可以随你自己的愿使用它。”

就是这样。

第一个应该解决 issue 的那个人,就是那个提出这个 issue 的人,不是别人,就是你自己。

这个功能如果你认为它很有用,你很需要,那为什么不复制出一个分支然后修改代码来实现呢?

开源意味着你可以使用你想要的东西,而 git 和 GitHub 为我们提供了一个简单的方法来合并我们的冲突,使其他开发者在将来不会面对他们。

但是这一切都得从每个人撸起袖子积极参与开始。 编写代码始终是您处理开源问题的第一条路。

你觉得你自己还不够好?不用担心,去写就行了,然后提一个 Pull Request。提完 PR 以后,其他开发者就会看到了,这样可以让你成长和成为一个更好的程序员。

还是不想写代码?好吧,打开一个 issue 的时候记住下面的一些 忠告

然后绝对不要忘记,在你的 issue 里没人可以强迫你写什么,也没人必须要为你工作。

迈出右脚开始你的2018年吧,不要犯我犯过的那个错误。

负责任地使用开源代码,并以身作则:大多数人不会阅读这篇文章,也不会很快与一个活跃的维护者交谈——但是如果他们看到他们周围的每个人都“正常地”使用 OSS,他们将表现相同。

上行下效,有样学样。

祝大家新年快乐!让我们一起变得更好吧~