對(duì)于很多在公司維護(hù)開(kāi)源項(xiàng)目的工程師來(lái)說(shuō)哀峻,成為 Apache 項(xiàng)目的 committer 應(yīng)該是很多人的一個(gè)小夢(mèng)想,那么怎么才能成為一位 committer,對(duì)于一些比較成熟的項(xiàng)目,現(xiàn)在想成為 committer 是有一定的難度腊凶,但也不是不可能。
How can I become an Apache committer? 這個(gè)問(wèn)題在 Quora 上也引起了一些討論拴念,本文也是看了哪些點(diǎn)贊比較多的答案之后的一些簡(jiǎn)單總結(jié)钧萍,也督促自己能夠按照別人的建議去踐行,實(shí)現(xiàn)自己的一個(gè)小 dream政鼠。
What does Committer mean : 如果你成為了一個(gè)項(xiàng)目的 committer风瘦,那么意味著你對(duì)這個(gè)工程已經(jīng)有了非常深入的理解,你所提交的代碼你能清楚地知道它不會(huì)對(duì)工程的其他地方帶來(lái)不好的影響公般、能夠兼容之前的功能弛秋;
Who decides on committer status : 每一個(gè) Apache 項(xiàng)目是由一個(gè)項(xiàng)目管理委員會(huì)(Project Management Committee器躏, PMC)來(lái)負(fù)責(zé)的。當(dāng)一個(gè) PMC 提名一位 committer 時(shí)蟹略,會(huì)由 PMC 的成員們來(lái)投票決定這個(gè) contributor 是否達(dá)到 committer 的要求;
上面是對(duì) committer 簡(jiǎn)單的說(shuō)明遏佣,那么如何才能成為一位 committer 呢挖炬?
- Motivation : 你應(yīng)該對(duì)這個(gè)項(xiàng)目中別人提出的問(wèn)題保持一個(gè)積極的態(tài)度,如果你認(rèn)為這個(gè)問(wèn)題是需要解決的状婶,那你自然而然就會(huì)去解決這個(gè)問(wèn)題了意敛;
- Attention to detail : Apache 的項(xiàng)目都有一個(gè)非常高的代碼質(zhì)量要求,在提交一個(gè) pr 時(shí)膛虫,你應(yīng)該確保改動(dòng)的代碼是不會(huì)由潛在的 bug 的草姻,并且需要寫(xiě)適當(dāng)?shù)臏y(cè)試對(duì)代碼變更部分。先從小處著手稍刀,關(guān)注代碼的每一個(gè)細(xì)節(jié):代碼中使用的數(shù)據(jù)結(jié)構(gòu)撩独、測(cè)試是否有異常情況及邊界情況的測(cè)試等。如果你能夠按照這個(gè)標(biāo)準(zhǔn)要求自己账月,那么 committer 在 view 你的代碼時(shí)综膀,就不會(huì)花費(fèi)太長(zhǎng)的時(shí)間,久而久之局齿,就會(huì)對(duì)你慢慢有了一直信任感剧劝;
- Activity in the community: 你應(yīng)該積極地關(guān)注社區(qū),把自己的郵箱加入到 mailing list抓歼,review 其他 contributor 的代碼讥此,提出一些建議。如果有新的 feature 或設(shè)計(jì)的變動(dòng)在討論谣妻,盡量加入到這些討論中萄喳,即使你的建議不是很出色,也沒(méi)有關(guān)系拌禾。這樣做的好處是你開(kāi)始密切關(guān)注社區(qū)的討論取胎、跟著項(xiàng)目的最新進(jìn)展;
- Volunteer : Apache 項(xiàng)目有很多與其相關(guān)的項(xiàng)目需要 volunteer湃窍,如:季度報(bào)告闻蛀、代碼發(fā)版文檔、說(shuō)明文檔等您市,你應(yīng)該積極參與其中觉痛。
當(dāng)然不同的項(xiàng)目成為 committer 的要求是不同的,但是上面這四條是比較通用茵休,任何一個(gè)項(xiàng)目的 committer 都有上面這幾個(gè)基本要求薪棒。
近段時(shí)間聽(tīng)了大沙的一次直播手蝎,關(guān)于如何成為 Committer,大沙有以下幾點(diǎn)建議(與上面的類似俐芯,內(nèi)容上更具體一些):
- 關(guān)注社區(qū)的問(wèn)題棵介、討論,讀源碼吧史,看看自己能不能解決這個(gè)問(wèn)題邮辽,如果不能解決,關(guān)注這個(gè) issue贸营,看別人怎么解決這個(gè)問(wèn)題吨述,看別人怎么 review code、怎么解決問(wèn)題钞脂;
- 當(dāng)你能夠 review 大量的 code揣云,對(duì)一個(gè)功能比較熟悉,相當(dāng)于一個(gè) master冰啃,那么你離 committer 就非常近了邓夕;
- 這需要耐心和時(shí)間。