欢迎参与 8 月 1 日中午 11 点的线上分享,了解 GreptimeDB 联合处理指标和日志的最新方案! 👉🏻 点击加入

Skip to content
On this page
社区
2025-1-23

从 Good First Issue 到 OSPP —— 学生如何走顺开源之路

从学习大数据到上手开源数据库项目 GreptimeDB,逐渐成为开源项目的 Committer,本篇文章讲述了一个开源新手的进阶之路。

p.s. 本次访谈由 GreptimeDB 社区核心成员(即 Greptime 工程师)Weny 主导,社区运营 Beryl 共同完成,本次叙述视角为 GreptimeDB 内部,访谈者 GitHub 🆔 为 CookiePieWw,文中简称为 Cookiepie。

对话社区 Committer Cookiepie

开源社区的故事,总是开始于一次尝试。@Cookiepie 的开源旅程,便是从第一个 GreptimeDB 的 Good First Issue 开始的,之后成为 Committer,再一路参与开源之夏&GreptimeDB 项目,最终来到社区继续实习。这一年的经历,至少已经让他对数据存储领域有了更深入的了解,也在开源的世界里不断成长。

(图 1:Cookiepie 近期开源贡献绿格子)
(图 1:Cookiepie 近期开源贡献绿格子)

一切从一个“好问题”开始

去年三月,Cookiepie 在学校学习的课余自学 Rust。当时,他正在琢磨怎么将一门语言和其他相关的知识转化为实践,编程和外语一样,都需要上手的机会

“我对 Rust 很感兴趣,想找点实际的东西练练手,”Cookiepie 回忆道。

在寻找上手项目的时候,一位开源 KOL 的推荐(❤️ 感谢这位大 V 的推荐)让他注意到了 GreptimeDB 的 Issue。

“一开始是想试试其他社区的任务,但后来看到有大佬推荐了 GreptimeDB 的一个 Issue,看起来更适合我,也能快速上手。”

这个任务是对 Procedure 的代码进行重构。对刚接触 Rust 和数据库项目的他来说,这确实是一个不小的挑战。

“我参考了其他的实现,花了不少时间才搞明白流程,”他笑着说。

🔎 详细 PR 请参考: https://github.com/GreptimeTeam/greptimedb/pull/3626

任何事情的起步都需要耗费一些时间,初期的投入也让他的开源数据库动手能力持续提高。因为这次任务不仅让他初步了解了数据存储的一些基本知识,也让他对项目结构有了更多的了解,更让他体会到了社区协作的温暖(📢:我们在 GitHub 社区的回复都是比较迅速和友好的)。

“数据库社区的氛围真的很好,大家都很乐于帮助新手小白。”

从 Contributor 到 Committer

在 GreptimeDB 第三次的社区晋升提名中,@Cookiepie 赫然在列。持续性的 PR 贡献和被社区普遍认可的代码质量,@Cookiepie 被提名为社区的 Committer。虽然从技术上,他已经为社区贡献了很多,但收到邮件的那一刻,他还是感到意外。作为一个三月开始上手 Rust 项目的小白来说,四个月就被提升为 Committer,是来自社区最诚挚的认可。

“社区的开发者关系负责人发了封邮件,跟我解释了为什么让我成为 Committer,当时有点不敢相信。”

(图 2:来自社区的邀请函)
(图 2:来自社区的邀请函)

因为社区留下的好印象和持续上手带来的正反馈,并且考虑到 Committer 的身份并不会带来任何负担,他接受了本次晋升提名。**成为 Committer 后,他不仅更深入地参与项目开发,还在社区内不断学习,迅速成长。**他认为,这种身份的转变不仅是一种认可,也是一份责任。

“社区是很包容的,但作为 Committer,更需要在社区贡献上有更多的内驱力和自主性。”

开源之夏的那些日子

严格来说,@Cookiepie 的 Committer 晋升和开源之夏项目接手基本是同一段时间开启的。随着 PR 提交的不断累积,@Cookiepie 很快开始了他的开源之夏项目。这次,他的目标更大:开发 GreptimeDB 的 JSON 类型支持。

“一开始我真的很懵,就一直写 Benchmark,后来发现方向不对,才调整过来。”

通过和 @Weny 导师的沟通,他在项目的推进中渐渐找到了自己的节奏,也学会了和社区/导师更好地协作。

“一个项目摸不着头脑的时候,可以先看看之前的人是怎么做的,实在搞不定就找社区的人 debug。”来自 @Weny 的建议。

@Cookiepie 和 @Weny 导师在尝试开源项目的时候,基本都是按照这样一个相同的思路进行的。JSON 类型在 GreptimeDB 的实现这个项目其实有很多优秀的候选人,但或许就是两个人相似的思考逻辑和同样高效的动手能力,才让他们一起完成了这个项目合作。开源社区的互帮互助是一个始终遵循的惯例,对于想要迫切上手项目的同学来说,是一个非常完美的选择。通过在 GreptimeDB 社区的长期耕耘,最终项目成功结项。同时,@Cookiepie 同学还被 OSPP 官方认证了“最佳进步奖”。

(图 3:Cookiepie OSPP 获奖记录)
(图 3:Cookiepie OSPP 获奖记录)

在他看来,开源的意义不仅是完成代码,还有在过程中学会如何求助、如何分享。

有一次他遇到难题,在社区的 Slack 群里简单描述了问题后,几位社区成员都迅速响应,尤其是 @Weny 甚至帮忙一步步分析。这种开放的氛围让他感到格外踏实,也激励他更主动地投入到项目中。

做开源:兴趣,还是更多?

在选择开源之夏项目之前,@Cookiepie 其实并没有明确的职业方向,因为计算机大类很多,现在就业方向和学习的专业不一定能完全 match。

“大数据专业有点偏 CS,但我一开始对 AI 更感兴趣。”

不过,他发现 AI 的研究更多偏理论,而他更喜欢动手做项目、解决实际问题。通过 GreptimeDB 的项目,他接触到了数据库/数据存储领域的深度和挑战性,这让他有了新的学习方向。在正式毕业之前,多参与一些项目实践也是一个不错的选择。

“数据库是一个很有意思的领域,尤其是像 GreptimeDB 这样和 Rust 结合的项目,既有技术深度,也有广阔的应用前景。”

写给想尝试开源的你

当被问到对初学者的建议时,@Cookiepie 说:“一定要大胆开始。社区里的 Issue,特别是 Good First Issue,真的很适合新人。”他还强调,参与开源不需要害怕问问题。“刚开始的时候,我会用 Grammarly 或 ChatGPT 检查自己的语法,生怕写错导致误会。但后来发现,社区的人其实都很友好,你只要认真,没人会在意这些细节。”

对于刚接触开源的人,他建议先找自己感兴趣的项目,从简单的任务做起,逐步积累对代码和社区的理解。

“任何一段长远的旅程,都是从上手开始的。”

交个朋友

Cookiepie GitHub 主页: https://github.com/CookiePieWw

Contribute to GreptimeDB: https://github.com/GreptimeTeam/greptimedb

Interviewer:WenyBeryl

Interviewee:Cookiepie

关于 Greptime

Greptime 格睿科技专注于为可观测、物联网及车联网等领域提供实时、高效的数据存储和分析服务,帮助客户挖掘数据的深层价值。目前基于云原生的时序数据库 GreptimeDB 已经衍生出多款适合不同用户的解决方案,更多信息或 demo 展示请联系下方小助手(微信号:greptime)。

欢迎对开源感兴趣的朋友们参与贡献和讨论,从带有 good first issue 标签的 issue 开始你的开源之旅吧~期待在开源社群里遇见你!添加小助手微信即可加入“技术交流群”与志同道合的朋友们面对面交流哦~

Star us on GitHub Now: https://github.com/GreptimeTeam/greptimedb

官网:https://greptime.cn/

文档:https://docs.greptime.cn/

Twitter: https://twitter.com/Greptime

Slack: https://greptime.com/slack

LinkedIn: https://www.linkedin.com/company/greptime/

加入我们的社区

获取 Greptime 最新更新,并与其他用户讨论。