我的编程故事—5 Java 到 Go,开源 rosedb

上一回说到,在工作的闲暇之余,我学习了很多的东西,其中就包括了 Go 语言,那时候并没有明确的目的,也没有什么转行转语言的想法,可能仅仅是对技术的兴趣吧!

学习之余,我发现了一些有意思的项目,比如 Go 语言领域知名的 boltdb,当时觉得非常的牛逼,特别是对还只会 CRUD 的我来说。于是心里盘算着能不能自己也写一个类似的东西,然后就发现了 bitcask 论文,具体这个论文是怎么被我找到的,我已经记不清了,可能是随便搜索的时候,点击了某个链接进去的。

了解到 bitcask 存储模型之后,又知道了其他的一些基础的东西,比如 B+ Tree、LSM Tree,并且还了解到 nutsdb,也是一个国人维护的开源项目,这坚定了我也可以自己写一个的念头,别人都可以做到,我为什么不行呢?

当时是我毕业工作后的一年多,在 10 月的国庆节假期期间,我决定看是否自己能够写出来。

但踌躇满志的我很快便栽了跟头,论文的内容其实理解起来并不难,但当真正上手去写的时候,会发现完全无从下手,好几天下来也没憋出几行代码。后来我意识到是自己的实践能力还不是很足,于是对 boltdb、nutsdb 的代码细读了一下,花了大概一个多月的时间,然后在 12 月的时候,又花了一个月的时间写出了 rosedb 的第一个版本然后开源出去了。

img

从这个图也可以看到其实 rosedb 就是从 2020 年底开始的,当然那时候开源出去,并没有什么影响力,仅仅是觉得有趣而已,代码质量也很一般,也就没什么关注的人了。

也是在那时候,我有了跳槽的打算,毕竟已经毕业一年半了,想着能不能看看新的机会,试试换个更大点的平台。在找工作的时候,我的简历上写了 Java 和 Go 两种,都还算是比较熟悉了,所以 Java 和 Go 相关的工作岗位都在看。

最后还是比较幸运的通过了哔哩哔哩的面试,在其中一个部门担任普通的后端开发职位,面试的过程当中,我开源的 rosedb 还算是一个不错的亮点,面试官可能觉得我还是一个对技术有热情,比较喜欢实践的人,有一定的加分。

现在回过头来看,有一些运气使然,因为我在找工作的时候,偏偏遇到了 Go 语言相关的开发工作,这让我可以在以后的工作当中对 Go 更加熟悉,也可以继续在 rosedb 现有的基础之上,在工作之余,靠着自己多技术的一些热忱,然后把这个项目持续的完善下去。

如果不是这样的话,假如我继续从事 Java 相关的工作,rosedb 可能并不会发展成现在的样子,因为我的工作并不是 Go 相关的,这个项目可能没多长时间就慢慢的置之不理了。

总之,我找到了一份互联网中厂的 Go 开发岗位,从 Java 转到了 Go 语言,并且 rosedb 项目也刚开始开源出去,虽然并没有获得什么关注。但还是会在业余时间慢慢的维护,预知后面我是如何转到存储岗位,并且 rosedb 是如何获得进一步发展的,且听下回分解。