六星源課堂:程序員小白須知的7個(gè)開源小技巧,少走彎路!

多年來,我一直在參與幾個(gè)代碼庫的維護(hù)工作,這些代碼庫的主要目的是幫助新手學(xué)習(xí)如何為開源做貢獻(xiàn),并給他們嘗試開源的機(jī)會(huì)。
在維護(hù)這些開源代碼庫期間,我注意到了新手都會(huì)犯的一些常見的錯(cuò)誤,還有一些他們常常感到疑惑的問題。因此,六星源課堂今天給大家分享7個(gè)開源小技巧,希望能夠?yàn)榇蛩阆蜷_源做貢獻(xiàn)的新手提供一些幫助。

閱讀貢獻(xiàn)準(zhǔn)則
每個(gè)開源代碼庫中都有一個(gè)名為 CONTRIBUTING.MD 的文件。該文件中容納了所有為該代碼庫做貢獻(xiàn)的規(guī)則,包括代碼變更指南以及如何貢獻(xiàn)代碼等。這個(gè)文件非常重要,仔細(xì)閱讀該文件可以為你節(jié)省大量時(shí)間,幫助你弄清楚需要做什么,以及如何確保你的拉取請求( PR )符合項(xiàng)目的所有準(zhǔn)則,同時(shí)還可以節(jié)省維護(hù)人員的時(shí)間,方便他們審核你的代碼,并做出必要的修改。
創(chuàng)建新分支
在貢獻(xiàn)代碼的時(shí)候,你需要做的第一件事情就是分叉項(xiàng)目,這樣可以方便你修改并提交代碼。然而,許多新手都會(huì)忽略創(chuàng)建新分支這個(gè)步驟。不要在分叉后,直接修改 master (主)分支。這一步對于維護(hù)人員,乃至整個(gè)項(xiàng)目都非常有幫助。
在動(dòng)手修改代碼之前,請先確保議題已經(jīng)分給了自己
雖然有例外,但我認(rèn)為大多數(shù)開源項(xiàng)目都采用了這種做法。我們應(yīng)該確保修改的議題分給了自己。通常,在向某個(gè)項(xiàng)目貢獻(xiàn)代碼的時(shí)候,首先你應(yīng)該去代碼庫的 Issue (議題)頁面,看看自己能幫上什么忙。在找到自己可以幫忙解決的問題后,你應(yīng)該先確保這個(gè)議題還沒有分出去,然后留言,請求將它分給自己。許多新手會(huì)漏看某個(gè)議題已經(jīng)分給了別人,或者忘了留言,最后導(dǎo)致維護(hù)人員看到多個(gè) PR 解決同一個(gè)問題,甚至漏掉某個(gè) PR 。為了避免這種情況,請首先在議題下面留言,確保議題分給了自己,然后再提交 PR 。
不要直接提交 PR ,先創(chuàng)建議題
有時(shí)你會(huì)發(fā)現(xiàn)某個(gè) bug ,或者想到增強(qiáng)某個(gè)功能辦法,而且代碼庫的議題列表中沒有這個(gè)問題。這時(shí),許多新手會(huì)直接動(dòng)手改代碼,然后發(fā)送 PR 。如果只是拼寫錯(cuò)誤之類的小問題,這種做法也沒有太大問題。但是,如果遇到很大的變更,尤其是你認(rèn)為自己的做法更好的時(shí)候,請首先發(fā)送一個(gè)議題,寫清楚自己的建議或仔細(xì)匯報(bào) bug 。如果維護(hù)人員認(rèn)為你說的很有道理,他們就會(huì)把這個(gè)議題分給你。但是,如果出于某種原因,他們沒有采納你的建議,則他們會(huì)關(guān)閉議題,從而節(jié)省彼此的時(shí)間。
不需要在每次修改代碼的時(shí)候都新建 PR
我看到很多人都有這類的困惑,某個(gè)開發(fā)人員發(fā)送了一個(gè) PR ,而我給出了修改建議,然后他會(huì)關(guān)閉這個(gè) PR ,然后再新建一個(gè) PR ,然后再修改代碼。其實(shí)你不需要這么做。
你可以直接修改 PR ,然后提交代碼即可。假設(shè)你分叉了代碼庫,并新建了一個(gè)分支 patch-1 ,那么只需在該分支上修改代碼,然后提交并推送你的更改,則所有的代碼變更都會(huì)自動(dòng)顯示在 PR 中。
不要提交不必要的文件
我收到的 PR 中經(jīng)常會(huì)包含不必要的文件,比如 IDE 的配置文件等。在提交代碼之前,請檢查一下哪些文件發(fā)生了變化,只提交與你修改的議題相關(guān)的文件。
不要?dú)怵H
有些開發(fā)人員犯了很多錯(cuò)誤,但我依然很喜歡他們。因?yàn)樗麄兏嬖V我自己是新手,因此我只能一次次地給他們機(jī)會(huì),讓他們改代碼。老實(shí)說,我以為他們會(huì)關(guān)掉 PR ,然后退出。但是,他們一直在努力,而且隨著時(shí)間一天天過去,他們不僅能出色地完成工作,而且還能夠?yàn)槠渌h題貢獻(xiàn)代碼。新手犯錯(cuò)再所難免,而且你們會(huì)越來越好。
總結(jié)
如果你從未向開源做過貢獻(xiàn),或者你一直猶豫不決,那不如現(xiàn)在就動(dòng)起來吧。為開源做貢獻(xiàn)不僅可以回饋社區(qū),而且自身也能得到成長。
以上就是本次分享的全部內(nèi)容,想學(xué)習(xí)更多編程技巧,歡迎持續(xù)關(guān)注六星源課堂!