如何快速成为 roserosedb 的代码在最近重构了很多,总体来说更加简洁直观了,各种数据类型的读写流程更加统一,架构图如下:
design-overview-rosedb.png
仍然是基于简单的 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!