天天看點

關于開源,你需要知道些什麼

關于開源,你需要知道些什麼
一份用簡單直白的語句來解釋開源的新手指南。

要是你想要(或需要)知道 開源的意思究竟是什麼。我會介紹開源的一些基礎,無論你是對項目貢獻感興趣,還是在想要融入的新工作圈子裡總是聽到這個名詞,因為這個詞總是被人不斷的提起。

我坦白,我這個人沒什麼技術經驗,在極具技術性的開源社群中從事着内容設計的邊緣工作。考慮到我原來的背景是營銷與傳播,我決定換工作時感覺就像離了水的魚兒。Git、資料科學、軟體的來龍去脈……直到一年後的今天,我依然感到難以消化。

但這正是為什麼我要寫這篇文章。我想要讓開源變得不那麼令人生畏。畢竟,開源的中心是一個支援型的學習社群 —— 這個社群對所有人開放,無論你是否有技術經驗。

我會從基礎中的基礎開始。

什麼是開源?

在此聲明,業界對開源的定義可以在 開放源代碼促進會Open Source Initiative 的網站找到。

然而,大衆對“開源”軟體的認知通常為它不用花錢,它的源代碼是公開的,任何人都可以對其貢獻,你可以重新釋出它或者用它做任何你想做的事。

這裡面有些是真的,而有些則屬于常見的誤解,其中之一就是關于花費。

開源隻要 0 元

這是真的嗎?大部分情況下是,但不是所有情況。開源軟體的本質在于代碼的公開性,是以擷取軟體本身确實不需要花費。但是,依賴開源項目營利的公司也确實存在。但如果軟體不需要花錢,開源公司又是如何生存的?他們該如何盈利?

擁有“免費産品”這個概念本身是反直覺的。但你要知道:一個公司不一定要靠出售軟體來賺錢,它也可以從産品的管理,資料的儲存,以及對客戶的支援中獲利。

很多公司都采用了訂閱模式,他們提供客戶支援服務以幫助客戶解決軟體問題并為客戶解答疑惑。資料儲存也并非免費,這也是能為公司帶來收入的另一領域。從這個角度來說,在銷售的“産品”不是軟體,而是訂閱服務。

  • 開源代碼是公開通路的:這是真的嗎?是的,永遠都是。“開源”一詞的先決條件正是這份公開性。源代碼必須允許被檢視、使用、修改和重新釋出。
  • 你可以用這份代碼做任何你想做的事:這是真的嗎?依情況而定。許可證條款會對你對代碼的使用方式作出限制,但你通常都可以用代碼做你想做的事。無論是調整該項目以滿足特殊需求,還是以此為基礎做些别的,開源軟體允許你和其他所有人對其修改。
  • 任何人都可以貢獻開源項目:這是真的嗎?是的,但有限制。所有有合适技能的人都可以貢獻開源。但是,這不意味着所有的貢獻都會被接受和采納。

比如說,你對一個目标是對地球上所有的鳥類進行分類的項目感興趣。你恰好很喜歡恐龍,特别是那些最終進化成如今的鳥類的恐龍。于是,你為所有最像鳥類的恐龍送出了條目。項目所有者在看到這些後可能會想:“不錯,這都是些很棒的史前鳥類。”但他們也可能會認為:“嗯……這些恐龍看起來像鳥,但他們還不是鳥,是以他們不屬于鳥類百科。”

幸運的是,項目裡的工作通常有法可依。開源項目通常有着貢獻指南和行為準則,是以你不用擔心你會加入什麼使得項目脫軌的東西。

為什麼選擇開源呢?

那麼,在衆多貢獻之後(如果這些貢獻完成的話),為什麼人們願意免費贈送他們的軟體?如果有那麼多人為此付出了時間與精力,他們為什麼不能聯合起來為軟體明碼标價?

這個問題有很多回答。我在這裡給出了一些:

  • 創業是艱難的,如果你開發的項目展現不出賺錢的潛力則尤其如此。召集一群志同道合的人,沒有承諾也沒有對薪水的期望,相對而言要簡單得多。
  • 大部分開源社群的成員對軟體的改進或者實作感興趣,但他們沒有時間或者不願意将項目作為他們的全職工作。有時候開源代表的是熱情驅動的項目、極客組成的團體,還有凝聚衆人智慧對惱人問題的解決方案。
  • 圍繞各種規模的開源項目形成的團體促進了支援型社群的成形,在這裡貢獻者與旁觀者都可以練習他們的技能,改進他們常用的軟體,互教互學,并為發聲被聽到而感到振奮。很多開源社群本質上就是高度集中的線上愛好者俱樂部。

我該如何參與呢?

現在你可能會問你自己:“我知道了這些資訊又可以做些什麼呢?我能貢獻開源項目嗎?如果我不夠優秀的話該怎麼辦?”

不要害怕 —— 即便是 新手也歡迎為開源項目做貢獻。在與社群一起朝着更大的目标共同努力的同時,你也得到了一個磨練技能的絕佳機會。況且,正如我之前所說,最壞的情況也不過是你的送出不被“鳥類百科”所接受(而這也是因為項目的所有者看不到你對鳥類百科的願景,那是一片關于鳥類知識的網絡天地,鳥與他們的祖先在那裡愉快地共存)。

你需要會寫代碼來貢獻開源嗎?與大衆認知相違的是,你不需要。項目“需要舉全村之力”以興旺,這意味着他們需要來自不同背景的人的貢獻。視覺設計師、撰稿人、營銷、評審、翻譯、主題愛好者,甚至隻是最終産品的使用者,都是可貴的貢獻者。他們不僅是幫忙搭建并改進了産品,他們也識别出了漏洞,提出了修改建議,為項目做出宣傳,最終使得社群強大。

簡單來說,不論你的背景是什麼,經驗有多少,隻要你對開源或是某個特别的項目感興趣,你幾乎可以保證會被張開雙臂歡迎。

現在就加入開源吧

還是不确定應該從哪開始?這裡有些能幫助你的想法和資源:

  • Up For Grabs是一份“專門為新貢獻者策劃任務的開源項目清單。”這裡很适合新貢獻者們來尋找簡單的初次 PR 機會,這次機會也能讓你探尋你更喜歡哪種貢獻。
  • 來看看 GitHub 上的這份 新手友好項目清單吧。
  • 如果你還是缺乏靈感,考慮一下貢獻(或一起“飛”) 紅帽Red Hat的開放設計系統PatternFly。
  • LCTT 夾帶私貨:你還可以通過參與 LCTT 的翻譯工作來首次體驗如何參與開源,這幾乎簡單到你隻需要懂一點點英文和一些熱情,本文就是由開源貢獻者翻譯貢獻而成的。入口在此: https://linux.cn/lctt/

via: https://opensource.com/article/22/11/get-started-open-source

作者:Katie Edwards選題:lkxed譯者:yzuowei校對:wxy

本文由 LCTT原創編譯,Linux中國榮譽推出