開源軟件入門指南:概念評(píng)述
譯文開源項(xiàng)目如今可謂無處不在,從Web到個(gè)人計(jì)算機(jī)再到智能手機(jī),我們似乎隨處可見它的身影。在今天的文章中,我們將共同探討以下三個(gè)話題:
• 開源的定義
• 流行開源項(xiàng)目范例
• 如何參與到開源項(xiàng)目當(dāng)中
1. 開源軟件到底是什么?
開源軟件是計(jì)算機(jī)軟件下的一個(gè)子類,其中的源代碼向公眾開放并采取特定的許可機(jī)制,允許任何人對(duì)其進(jìn)行代碼修改并重新發(fā)布代碼或者可執(zhí)行文件。
盡管開源軟件通常由一群人負(fù)責(zé)開發(fā)與維護(hù),但事實(shí)上只要有意愿、任何人都可以訪問其代碼并在其中表達(dá)自己的構(gòu)想。
我曾經(jīng)為幾個(gè)開源項(xiàng)目貢獻(xiàn)過代碼,而且為開源項(xiàng)目作貢獻(xiàn)也確實(shí)是成為一位優(yōu)秀開發(fā)人員以及回饋技術(shù)社區(qū)的***方式。大家可以從中接觸到其他開發(fā)者編寫的代碼,并逐步學(xué)習(xí)如何對(duì)自己的代碼加以完善。就我個(gè)人而言,看到自己與其他開發(fā)人員共同構(gòu)建的開源項(xiàng)目能夠順利發(fā)展,實(shí)在是技術(shù)工作歷程中最值得驕傲的經(jīng)歷。
下面我們來看一些***人氣的開源軟件方案。大家可能會(huì)對(duì)開源項(xiàng)目數(shù)量之龐大以及在背后支持這些項(xiàng)目的巨頭企業(yè)表示驚訝,例如谷歌與Automattic。
2. 常見開源項(xiàng)目
目前世界上的開源項(xiàng)目數(shù)量以百萬計(jì),下面我們僅列出其中最為常見以及***知名度的一小部分:
• WordPress,網(wǎng)絡(luò)上***的內(nèi)容管理系統(tǒng)之一,目前使用者群體已經(jīng)達(dá)到數(shù)百萬。
• PHP是目前網(wǎng)絡(luò)上人氣***的Web編程語言,它支持著包括Facebook在內(nèi)的八成以上網(wǎng)絡(luò)內(nèi)容。
• Audacity是一款免費(fèi)且易于使用的多聲道音頻編輯器與錄音工具。
• OpenOffice是一款免費(fèi)的微軟Office替代方案。
• Android開源項(xiàng)目是一套廣為人知的移動(dòng)操作系統(tǒng),顧名思義屬于開源項(xiàng)目。
• Firefox OS是一套移動(dòng)操作系統(tǒng),由Mozilla公司負(fù)責(zé)開發(fā)與維護(hù)。
3. 開源機(jī)制如何運(yùn)作
開源項(xiàng)目的發(fā)展主要分為三個(gè)階段。下面讓我們簡單對(duì)各個(gè)階段進(jìn)行一番評(píng)述。
階段一:貢獻(xiàn)
如果大家希望能夠切實(shí)參與到開源項(xiàng)目當(dāng)中,那么***先與該軟件背后的企業(yè)或者機(jī)構(gòu)取得聯(lián)系,詢問對(duì)方自己能為項(xiàng)目作出哪些貢獻(xiàn)。這種方式特別適合規(guī)模較小的項(xiàng)目或者新興企業(yè),不過大家需要明確一點(diǎn)——大部分開源項(xiàng)目不會(huì)為各位的工作成果支付任何報(bào)酬,我們的參與完全建立在自愿的基礎(chǔ)上。
遙想當(dāng)年,我在參與開源項(xiàng)目的開發(fā)工作時(shí),就曾經(jīng)枯坐了數(shù)周之久以等待項(xiàng)目管理方給出的答復(fù)——事實(shí)上有一次等待周期甚至長達(dá)兩個(gè)月。不過請(qǐng)大家稍安勿躁,這份確認(rèn)郵件真的非常重要,值得我們?yōu)樗冻鲆恍┠托?。收到?duì)方的通知后,開發(fā)工作就可以正式開始了。
另外,對(duì)于規(guī)模較大的項(xiàng)目,大家可以直接開始編碼工作并構(gòu)建起屬于自己的衍生軟件版本。大家還應(yīng)當(dāng)警惕這樣的情況:如果同一個(gè)項(xiàng)目的參與者過多,那么我們辛苦勞作打造出的成果很可能根本不會(huì)被收錄到該產(chǎn)品的最終版本當(dāng)中。在這種情況下,請(qǐng)各位權(quán)衡利弊,如果不滿意可以果斷退出。
如果大家正在為某個(gè)項(xiàng)目尋找能夠指導(dǎo)起步工作的靈感,也千萬別被自己的思路綁住了手腳。網(wǎng)絡(luò)上可能提供大量有趣的項(xiàng)目供我們參考,特別是在GitHub、SourceForge以及Google Code等站點(diǎn)當(dāng)中。
在真正著手處理與項(xiàng)目有關(guān)的工作之前,大家應(yīng)該首先學(xué)著熟悉項(xiàng)目的運(yùn)作方式并了解如何對(duì)其結(jié)構(gòu)進(jìn)行管理,只有這樣各位在需要援助之時(shí)才能清醒地意識(shí)到誰有能力幫自己渡過難關(guān)。再有,在開始工作之前明確自己要實(shí)現(xiàn)的目標(biāo)也是個(gè)不錯(cuò)的主意,這樣我們就不至于把項(xiàng)目弄得一團(tuán)糟、或者把寶貴時(shí)間白白浪費(fèi)在其他開發(fā)者早已實(shí)現(xiàn)了的現(xiàn)有功能身上。
階段二:提交
當(dāng)大家已經(jīng)完成了自己預(yù)期的變更或者實(shí)現(xiàn)了構(gòu)思已久的新功能,下面要做的就是將變更內(nèi)容提交至主項(xiàng)目、并把成果發(fā)送給項(xiàng)目維護(hù)人員以供審查。
這項(xiàng)工作可能需要利用GitHub或者SourceForge等平臺(tái)來實(shí)現(xiàn)。我們對(duì)項(xiàng)目作出的變更一般會(huì)收到來自企業(yè)或者項(xiàng)目管理團(tuán)隊(duì)的“接受”或者“拒絕”反饋,大家由此就能了解到自己的開發(fā)成果是否被實(shí)際應(yīng)用在了項(xiàng)目當(dāng)中。如果答案是“接受”,那么是時(shí)候邁向發(fā)布階段了。如果答案是“拒絕”,我們還需要重新回到貢獻(xiàn)階段、用心琢磨自己的想法是不是出了偏差。
階段三:發(fā)布
在整個(gè)開源項(xiàng)目開發(fā)過程中,發(fā)布可能是其中最為復(fù)雜的一個(gè)階段。在此期間,軟件的最終版本將被提交到托管項(xiàng)目的代碼庫中,向非開發(fā)者提供的實(shí)時(shí)版本也會(huì)作出相應(yīng)更新。到了這里,企業(yè)與開發(fā)人員就終于能夠向繁重的工作揮手道別了,接下來軟件成果將交給公眾進(jìn)行使用以及評(píng)判。
內(nèi)容總結(jié)
我希望大家在閱讀了本文之后能夠?qū)﹂_源開發(fā)機(jī)制抱有更強(qiáng)的信心,更希望各位能夠清楚了解要如何親自參與到項(xiàng)目的發(fā)展進(jìn)程當(dāng)中。開源開發(fā)真的非常有趣,但有時(shí)候無法得到理想的結(jié)果也會(huì)使人感到沮喪。不過請(qǐng)大家始終記住一點(diǎn):堅(jiān)持下去,遇到障礙時(shí)不要輕言放棄——這是獲得成功的必要前提。
在本系列文章的下一部分中,我們將一同了解開源項(xiàng)目的許可機(jī)制以及開發(fā)人員在遇到問題時(shí)可以通過哪些途徑找到答案。如果大家還有什么疑問,不妨評(píng)論欄中與其他朋友進(jìn)行交流。
英文:http://code.tutsplus.com/tutorials/open-source-101-what-is-it--cms-21278