發(fā)布于:2020-12-24 16:05:33
0
67
0
取決于您正在從事的項(xiàng)目,對(duì)開源做出的貢獻(xiàn)可能令人生畏和困惑。此外,大多數(shù)大型開源項(xiàng)目的學(xué)習(xí)曲線都很陡峭。但是,正如開源的廣泛使用所證明的那樣,即使您是新手,也有很多機(jī)會(huì)可以進(jìn)入并蓬勃發(fā)展。
開源是指在許可下可供公眾查看,使用,修改和分發(fā)的源代碼。它通常是由其用戶社區(qū)共同開發(fā)和維護(hù)的。一些著名的開源項(xiàng)目包括Django,Postgres,MongoDB,Vue,Go,Ruby,TypeScript,Git等。
盡管開源項(xiàng)目的重點(diǎn)是創(chuàng)建有價(jià)值的可訪問的開源軟件,但是個(gè)人貢獻(xiàn)者可以從貢獻(xiàn)中獲得很多個(gè)人利益。您可以在維護(hù)技術(shù)技能的同時(shí),幫助維護(hù)您使用的軟件。在申請(qǐng)工作時(shí),您可以將自己在開源軟件上的工作作為技能證明。
通過與您使用的開源上的其他人進(jìn)行協(xié)作,您將成為社區(qū)的一部分,在那里您可以練習(xí)自己的軟技能,例如溝通,給予和接受反饋,情商等。這些社區(qū)還向您介紹了很多可以聯(lián)系的人誰會(huì)反過來為您打開有價(jià)值的機(jī)會(huì)。
下面,我們將探討一些可用于入侵開源的策略。出于說明目的(并且因?yàn)槲乙呀?jīng)在其中做出了貢獻(xiàn)),我將使用Angular項(xiàng)目來說明如何為開源軟件做出貢獻(xiàn)。盡管大多數(shù)示例都是Angular項(xiàng)目的示例,但是所描述的所有這些策略都適用于許多開源項(xiàng)目。
為開源做貢獻(xiàn)的方法
您可以通過多種方式參與開源。 作為初學(xué)者,您可以識(shí)別并修復(fù)項(xiàng)目中的錯(cuò)誤。 例如,Angular項(xiàng)目接受指出錯(cuò)誤的問題,甚至接受修復(fù)錯(cuò)誤的請(qǐng)求。 在這些項(xiàng)目中,您可以建議,幫助設(shè)計(jì)和使用新功能。 例如,Angular接受有關(guān)大型功能的建議,并接受較小功能的請(qǐng)求。 較大的功能將需要更大的社區(qū)參與度,并且某些社區(qū)要求您在轉(zhuǎn)移到功能開發(fā)之前必須贏得信譽(yù)修復(fù)漏洞。
您的貢獻(xiàn)不必僅限于代碼。 您可以通過對(duì)現(xiàn)有代碼和API進(jìn)行注釋以添加項(xiàng)目的上下文和編寫文檔來為項(xiàng)目提供幫助。 例如,Angular在Github上有兩個(gè)完整的項(xiàng)目,專門用于文檔編制,您可以在此處和此處查看。
了解項(xiàng)目的運(yùn)作方式
并非所有開源項(xiàng)目都以相同的方式運(yùn)行。有些允許任何人的貢獻(xiàn)。有些要求您努力獲得貢獻(xiàn)特權(quán)。有些人有多個(gè)人參與管理項(xiàng)目。其他人則由一個(gè)人負(fù)責(zé),即所謂的人生仁慈獨(dú)裁者。
貢獻(xiàn)準(zhǔn)則可幫助您了解如何參與項(xiàng)目。它將解釋如何伸出手,提供用于溝通錯(cuò)誤和建議功能的模板,列出維護(hù)人員所需的工作,項(xiàng)目目標(biāo)等。一個(gè)令人驚訝的示例是Angular貢獻(xiàn)指南,其中列出了各種新的有用信息。貢獻(xiàn)者非常喜歡他們的提交消息準(zhǔn)則,編碼規(guī)則,提交準(zhǔn)則等。
除了捐款指南之外,某些項(xiàng)目還將制定行為準(zhǔn)則。它通常概述社區(qū)規(guī)則和行為期望。它旨在幫助您了解如何成為一個(gè)和able而專業(yè)的貢獻(xiàn)者和社區(qū)成員。例如,Angular的行為準(zhǔn)則很棒,列出了他們認(rèn)為的非職業(yè)行為,對(duì)社區(qū)的責(zé)任以及在有人違反行為時(shí)如何聯(lián)系。
大型項(xiàng)目可能具有治理策略和團(tuán)隊(duì)文檔,這些文檔概述了社區(qū)中的特定角色,團(tuán)隊(duì),小組委員會(huì),貢獻(xiàn)工作流程,討論的進(jìn)行方式以及承諾的對(duì)象。這些文件對(duì)于理解社區(qū)的運(yùn)作方式至關(guān)重要。例如,angular.io的“關(guān)于”頁面列出了所有核心團(tuán)隊(duì)成員都是誰,他們的角色以及其他貢獻(xiàn)者。在Github上,他們還有一個(gè)docs文件夾,其中包含有關(guān)貢獻(xiàn)的政策。
即使在閱讀完文檔后,您可能仍然需要向社區(qū)中的活躍成員提問。盡管進(jìn)行了研究,但您可能仍然對(duì)項(xiàng)目的某個(gè)方面感到困惑。要與其他貢獻(xiàn)者進(jìn)行交互,請(qǐng)加入Slack,IRC等社區(qū)交流工具,注冊(cè)新聞通訊,并訂閱他們的郵件列表。 Angular使用Gitter作為其社區(qū)溝通工具,并將有疑問/問題的貢獻(xiàn)者引導(dǎo)到Stack Overflow,在這里他們可以使用angular標(biāo)簽獲得幫助。與社區(qū)成員建立聯(lián)系并與他們建立關(guān)系,因?yàn)檫@會(huì)使您接觸到您可能不知道的項(xiàng)目方面。
掌握項(xiàng)目的技術(shù)方面及其組織方式對(duì)于做出符合項(xiàng)目標(biāo)準(zhǔn)的貢獻(xiàn)至關(guān)重要。要了解項(xiàng)目的技術(shù)部分,請(qǐng)查閱項(xiàng)目README,Wiki,教程和文檔。例如,Angular的文檔解釋了他們的Github流程,構(gòu)建和測(cè)試,其編碼標(biāo)準(zhǔn),調(diào)試,PR審查等。再往前看,請(qǐng)查看合并的pull請(qǐng)求中過去的功能集成和錯(cuò)誤修復(fù),有關(guān)內(nèi)容請(qǐng)參見其他貢獻(xiàn)者,可以提供豐富的背景信息。隨著項(xiàng)目的發(fā)展,請(qǐng)注意它,并經(jīng)常關(guān)注問題,功能,討論,請(qǐng)求請(qǐng)求和錯(cuò)誤修復(fù),以不斷學(xué)習(xí)其工作原理。例如,貢獻(xiàn)者可以遵循有關(guān)表單API的Angular功能請(qǐng)求示例的此示例,以更好地了解Angular表單的工作方式,包大小管理等。
開源項(xiàng)目有點(diǎn)像您可能在任何公司工作的項(xiàng)目。會(huì)有房屋編碼風(fēng)格,團(tuán)隊(duì)文化和完成工作的工作流程。不同之處在于,開源項(xiàng)目可以并且將有不同的團(tuán)隊(duì)來工作。
尋找工作項(xiàng)目
查找要處理的項(xiàng)目的一種方法是查找經(jīng)常使用且喜歡的開源軟件。是否有您經(jīng)常使用并喜歡使用的工具,軟件包,框架或語言?通過檢查其許可來確定它是否是一個(gè)開源項(xiàng)目,以及該項(xiàng)目是否接受捐款并且是否處于活動(dòng)狀態(tài)。對(duì)已經(jīng)使用的東西進(jìn)行處理有助于您做出貢獻(xiàn),因?yàn)槟呀?jīng)非常熟悉它的工作原理并具有使用經(jīng)驗(yàn)。另外,您可以解決困擾您的問題,也可以建議軟件中所需的功能。如果要為項(xiàng)目貢獻(xiàn)代碼,請(qǐng)確??梢允褂闷渚帉懙恼Z言進(jìn)行工作。
如果以上方法可能對(duì)您不起作用,請(qǐng)嘗試使用Github瀏覽頁面查找接受捐款或積極尋求幫助的項(xiàng)目。 Github根據(jù)您關(guān)注,加注和觀看的人員和資源庫,建議您可能喜歡的項(xiàng)目。查找項(xiàng)目的另一種方法是使用Github的搜索工具,方法是輸入對(duì)初學(xué)者友好的貢獻(xiàn)標(biāo)簽,例如“先發(fā)好人”,“先發(fā)錯(cuò)誤”,“對(duì)初學(xué)者友好”,簡(jiǎn)單,低掛果,僅限初學(xué)者等。 。過濾搜索結(jié)果,以開放狀態(tài)和您想要使用的語言返回問題。還有很多其他工具,平臺(tái)和程序,您可以在其中找到開放源代碼項(xiàng)目,我將在本文結(jié)尾列出。文章,以幫助您進(jìn)行搜索。
要獲得積極的貢獻(xiàn)經(jīng)驗(yàn),請(qǐng)盡量避免對(duì)初學(xué)者懷有敵意且普遍存在問題的社區(qū)。例如,如果在完成研究后嘗試提出合法問題時(shí),您收到了不屑一顧和好斗的評(píng)論或侮辱,則最好遠(yuǎn)離。另一個(gè)需要注意的標(biāo)志是社區(qū)內(nèi)不專業(yè)行為的模式。一些開源軟件項(xiàng)目因這種事情而聲名狼藉。因此,在做出貢獻(xiàn)之前先進(jìn)行研究。
選擇要研究的問題并做出貢獻(xiàn)
項(xiàng)目可能會(huì)列出在任務(wù),錯(cuò)誤和問題跟蹤器中需要完成的工作。例如,Angular使用Github的項(xiàng)目管理功能來概述和分配任務(wù)并跟蹤其進(jìn)度。如果一個(gè)項(xiàng)目有一個(gè),請(qǐng)?jiān)L問它。
根據(jù)經(jīng)驗(yàn),先嘗試最簡(jiǎn)單和最小的貢獻(xiàn),然后再花最少的精力來建立信心和信譽(yù),然后再嘗試更努力。編寫文檔和修正錯(cuò)別字是一個(gè)不錯(cuò)的起點(diǎn)。查找使用前面提到的標(biāo)記為初學(xué)者標(biāo)記的問題。
選擇任務(wù)后,認(rèn)為可以完成,請(qǐng)進(jìn)行研究。閱讀與任務(wù)相關(guān)的文檔,代碼和討論,以更好地了解該做什么。如果您在研究某項(xiàng)內(nèi)容后仍然堅(jiān)持使用,請(qǐng)與社區(qū)聯(lián)系,尋求幫助,澄清或指導(dǎo)。但是,請(qǐng)確保您公開討論與任務(wù)有關(guān)的問題,以便社區(qū)其他成員可以從中學(xué)到的知識(shí)中受益。例如,在Github上公開討論一個(gè)問題,而在Slack上私下直接討論該問題。一旦感覺到您對(duì)任務(wù)有足夠的上下文并且知道如何執(zhí)行任務(wù),請(qǐng)編寫一些代碼并提交PR。 Github有一個(gè)很棒的清單,關(guān)于在為項(xiàng)目做出貢獻(xiàn)之前要檢查的內(nèi)容,因此不會(huì)浪費(fèi)您的精力。
提交工作
完成貢獻(xiàn)工作后,請(qǐng)按照貢獻(xiàn)準(zhǔn)則將其提交。 有時(shí),即使經(jīng)過了合理的時(shí)間,您的提交也可能不會(huì)得到答復(fù)。 在這種情況下,請(qǐng)尊重地要求審查或與其他貢獻(xiàn)者聯(lián)系以尋求幫助。 可能需要進(jìn)行審查后更改。 嘗試盡快制作它們,以使您的貢獻(xiàn)得到及時(shí)整合,并且不會(huì)過時(shí)或被遺忘。 如果您的貢獻(xiàn)被拒絕,請(qǐng)尋求反饋以了解原因。 當(dāng)審閱者提出問題,發(fā)表評(píng)論或提供反饋時(shí),請(qǐng)做出回應(yīng)并定期檢查您的工作是否有任何更新。 像對(duì)待其他工作一樣對(duì)待它,要專業(yè),禮貌和尊重。
你在等什么?
開源貢獻(xiàn)可以是一個(gè)了不起的學(xué)習(xí)經(jīng)驗(yàn)。 它使您可以回饋并參與構(gòu)建有價(jià)值的開源軟件的社區(qū)。 它使您可以使自己使用的軟件更好。 盡管開始可能很困難,但是一旦掌握了它,它就會(huì)帶來巨大的收獲。 您無需了解有關(guān)項(xiàng)目的所有知識(shí)即可做出貢獻(xiàn)。 選擇一個(gè)項(xiàng)目和一個(gè)社區(qū),以支持新的參與者,尋找導(dǎo)師并做出自己的貢獻(xiàn)。 您可能會(huì)遇到一些臭名昭著的社區(qū)。 遠(yuǎn)離它們,因?yàn)樗鼈兛赡軙?huì)使您完全脫離開源。
作者介紹
熱門博客推薦