標籤:

原來開源根本不是我想像的那樣

我本來以為我已經理解了開源,但是我還是錯了

不僅錯了,還錯得很深刻

不知道大家是否知道一句諺語:「你不可能下載到一輛車」。

在我小時候在當地電影院里我看到這句話太多次了,而且不得不承認,我一直覺得這很奇怪。

我的意思是,偷車和下載文件在我腦中有兩個完全不同的效果:下載文件呢,你最終會得到兩個文件, 一旦下載完成,就不會像偷車那樣,讓原來的車神奇地消失了。 那輛車呢,好吧,它總是只有一個。

當時的這種不協調很容易讓我發現,我每天使用開源代碼的做法讓我感到奇怪,並且作為一個真正的維護者,我花了好幾個月的時間來理解,我在這方面和我一樣把現實世界和虛擬世界混為一談。

我曾經作為一個用戶與開源軟體互動獲得免費贈品。

在那裡,我曾經說過:我曾經把這個庫或那個代碼片段添加到我的代碼中,以便集成一個新的特性,如果出了什麼問題,我會回到 GitHub 庫,並提出一個 issue。 我會盡量多次成為一名優秀的 issue 提出者,但我也寫了我的「+1/我也是」的評論。

我相信維護者,創建我所使用的代碼的人,他們寫出了一個很好的產品 —— 然後通過給他們反饋如何添加一個特性,或者要求一個關於某個 issue 的 ETA,這是一個合法而且標準的合作方式。 我期望他們會很樂意接受我的建議,並修改他們的路線圖以適應我的意願。

甚至當我開始幫助 react-navigation 的時候,我通過看到那些作為用戶的人提出 issue 來保持這種「心態」。通過這樣做,我做了太多的問題分類(並且處理了太多的「不良用戶」),並試圖讓每個人「開心」,差點讓我崩潰。

然後我加入了 GitHub 上的 Open Source Maintainers 社區,在這裡我可以和很多聰明的,參與開源很多年的人交流。

然後就發現了一些事情。

我覺得我現在正正確地做對一件事,開源並不是「搶佔」,而是恰恰相反。

「嘿,你看,我做出來了——如果你也想使用,這裡就有實現。我根據我自己的需求做的東西,但是你可以隨你自己的願使用它。」

就是這樣。

第一個應該解決 issue 的那個人,就是那個提出這個 issue 的人,不是別人,就是你自己。

這個功能如果你認為它很有用,你很需要,那為什麼不複製出一個分支然後修改代碼來實現呢?

開源意味著你可以使用你想要的東西,而 git 和 GitHub 為我們提供了一個簡單的方法來合併我們的衝突,使其他開發者在將來不會面對他們。

但是這一切都得從每個人擼起袖子積极參与開始。 編寫代碼始終是您處理開源問題的第一條路。

你覺得你自己還不夠好?不用擔心,去寫就行了,然後提一個 Pull Request。提完 PR 以後,其他開發者就會看到了,這樣可以讓你成長和成為一個更好的程序員。

還是不想寫代碼?好吧,打開一個 issue 的時候記住下面的一些 忠告。

然後絕對不要忘記,在你的 issue 里沒人可以強迫你寫什麼,也沒人必須要為你工作。

邁出右腳開始你的2018年吧,不要犯我犯過的那個錯誤。

負責任地使用開源代碼,並以身作則:大多數人不會閱讀這篇文章,也不會很快與一個活躍的維護者交談——但是如果他們看到他們周圍的每個人都「正常地」使用 OSS,他們將表現相同。

上行下效,有樣學樣。

祝大家新年快樂!讓我們一起變得更好吧~

原 文:I thought I understood Open Source. I was wrong

譯 文:眾成翻譯

作 者:弈晨 譯

更多文章:SDK.CN - 中國領先的開發者服務平台


推薦閱讀:

GitHub 上有哪些安全相關的 Python 項目值得一讀?
Github 上有哪些簡單的 Python 小工具值得推薦?
github中適合新人閱讀的Python項目有哪些?
GitHub 上有哪些好的英文文章或書籍的翻譯項目?
GitHub 在國內無法訪問之後,如何自救?

TAG:开源 | GitHub |