如何快速成為 Rosedb 的 Contributor ?
如何快速成為 roserosedb 的代碼在最近重構(gòu)了很多,總體來(lái)說(shuō)更加簡(jiǎn)潔直觀了,各種數(shù)據(jù)類型的讀寫流程更加統(tǒng)一,架構(gòu)圖如下:
design-overview-rosedb.png
仍然是基于簡(jiǎn)單的 bitcask 存儲(chǔ)模型,后續(xù)有時(shí)間的話,也會(huì)像 LotusDB 那樣,出一個(gè)《rosedb 設(shè)計(jì)與實(shí)現(xiàn)》的系列文章,敬請(qǐng)期待。rosedb 目前仍處于積極維護(hù)狀態(tài),已經(jīng)獲得了累計(jì) 2.6k star:
近期 rosedb 的貢獻(xiàn)者還是比較活躍的,pr 數(shù)量也不少:
這篇文章,主要是想講一講讓更多的新手,或者對(duì) rosedb 不太熟悉的同學(xué),如何低門檻的參與到 rosedb 的開(kāi)發(fā)中,并且快速提交 pr,成為 rosedb 的 Contributor。如果你對(duì) rosedb 感興趣,無(wú)論對(duì)存儲(chǔ)方面的知識(shí)是否精通,都能夠在各方面為 rosedb 做貢獻(xiàn),提升自己的能力。
想?yún)⑴c進(jìn)來(lái)的話,這里給出一個(gè)循序漸進(jìn)的流程。
1.熟悉 Pr 流程
- 添加 test 方法
- 添加 example 代碼
目前 rosedb 當(dāng)中的一些方法是沒(méi)有對(duì)應(yīng)的 Test 方法的(或者說(shuō) Test 并不完善),你可以按照已有的 Test Case 的寫法,來(lái)為方法添加單元測(cè)試。
rosedb 下有一個(gè) examples 目錄,向用戶展示 rosedb 的使用方法,你可以往其中添加一個(gè)方法。
這類 Pr 沒(méi)有太多的技巧可言,只是為了讓你熟悉整個(gè) Pr 的流程,并且能夠?qū)?rosedb 中的一些方法有所認(rèn)識(shí),對(duì) rosedb 的數(shù)據(jù)讀寫流程有更進(jìn)一步的理解。
2.簡(jiǎn)單問(wèn)題
- 添加更多 redis 相關(guān)的命令
- good first issue
rosedb 支持的命令目前大致是按照 redis 來(lái)添加的,我們做到能夠支持 redis 大多數(shù)常用的命令即可,做之前要確認(rèn)一下這個(gè)命令在 rosedb 當(dāng)中是不存在的。盡量選擇 redis 一些常用的命令,不常用的可以暫時(shí)不支持。
如果一個(gè) issue 被標(biāo)識(shí)為了 good first issue,則說(shuō)明這個(gè) issue 也很適合新手參與,你可以按照自己的情況選擇自己感興趣或擅長(zhǎng)的。例如目前項(xiàng)目中已經(jīng)有了很多這樣的 issue:
3.bug 修改或功能完善/增強(qiáng)
- 修復(fù) bug
- enhancement
如果有一些 bug 或者新的功能,或是對(duì)已有功能進(jìn)行完善,這類 issue 會(huì)被標(biāo)識(shí)為 bug 或 enhancement,這類問(wèn)題可能稍微復(fù)雜點(diǎn),需要你對(duì) rosedb 整體的流程更加熟悉。
最后,需要說(shuō)明一下,每個(gè) issue 都標(biāo)識(shí)了該問(wèn)題的難易程度(easy、medium、hard),你可以根據(jù)自己對(duì) rosedb 的了解程度,選擇適合自己的,對(duì)于任何問(wèn)題或者 issue,在做之前,或者做的過(guò)程當(dāng)中有問(wèn)題的話,都可以提出來(lái)和我交流。
以上就是我列舉的如何低門檻的參與到 rosedb 當(dāng)中的方法,你也可以根據(jù)你自己的經(jīng)驗(yàn),在其他的方面進(jìn)行完善補(bǔ)充,總之, 期待你的 PR!