rosedb 的代码在最近重构了很多,总体来说更加简洁直观了,各种数据类型的读写流程更加统一,架构图如下:
仍然是基于简单的 bitcask
存储模型,后续有时间的话,也会像 LotusDB 那样,出一个《rosedb 设计与实现》的系列文章,敬请期待。rosedb 目前仍处于积极维护状态,已经获得了累计 2.6k star:
近期 rosedb 的贡献者还是比较活跃的,pr 数量也不少:
这篇文章,主要是想讲一讲让更多的新手,或者对 rosedb 不太熟悉的同学,如何低门槛的参与到 rosedb 的开发中,并且快速提交 pr,成为 rosedb 的 Contributor。如果你对 rosedb 感兴趣,无论对存储方面的知识是否精通,都能够在各方面为 rosedb 做贡献,提升自己的能力。
想参与进来的话,这里给出一个循序渐进的流程。
1、熟悉 Pr 流程
•添加 test 方法
•添加 example 代码
目前 rosedb 当中的一些方法是没有对应的 Test 方法的(或者说 Test 并不完善),你可以按照已有的 Test Case 的写法,来为方法添加单元测试。
rosedb 下有一个 examples
目录,向用户展示 rosedb 的使用方法,你可以往其中添加一个方法。
这类 Pr 没有太多的技巧可言,只是为了让你熟悉整个 Pr 的流程,并且能够对 rosedb 中的一些方法有所认识,对 rosedb 的数据读写流程有更进一步的理解。
2、简单问题
•添加更多 redis 相关的命令
•good first issue
rosedb 支持的命令目前大致是按照 redis 来添加的,我们做到能够支持 redis 大多数常用的命令即可,做之前要确认一下这个命令在 rosedb 当中是不存在的。尽量选择 redis 一些常用的命令,不常用的可以暂时不支持。
如果一个 issue 被标识为了 good first issue
,则说明这个 issue 也很适合新手参与,你可以按照自己的情况选择自己感兴趣或擅长的。例如目前项目中已经有了很多这样的 issue:
3、bug 修改或功能完善/增强
•修复 bug
•enhancement
如果有一些 bug 或者新的功能,或是对已有功能进行完善,这类 issue 会被标识为 bug 或 enhancement,这类问题可能稍微复杂点,需要你对 rosedb 整体的流程更加熟悉。
最后,需要说明一下,每个 issue 都标识了该问题的难易程度(easy、medium、hard
),你可以根据自己对 rosedb 的了解程度,选择适合自己的,对于任何问题或者 issue,在做之前,或者做的过程当中有问题的话,都可以提出来和我交流。
以上就是我列举的如何低门槛的参与到 rosedb 当中的方法,你也可以根据你自己的经验,在其他的方面进行完善补充,总之, 期待你的 PR!