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

Skip to content
On this page
活动
2023-9-13

开源之夏项目经验分享——邹伟“从 0 到 1 迈出开源世界第一步”

开源之夏是中科院软件所开源软件供应链点亮计划下的一个特色暑期活动,此次活动 Greptime 成功地招募了三位优秀的在校学生参与开源项目实践。本篇文章就详细地讲述了学员代表邹伟他在本次技术实践中的心路历程。

开源之夏是中科院软件所开源软件供应链点亮计划下的一个特色暑期活动。由软件所与 openEuler 社区联合主办,此活动的主旨是鼓励在校学生积极参与到开源软件的开发与维护中。

在此次开源之夏的活动中,我们 Greptime 成功地招募了三位优秀的在校学生参与开源项目实践。邹伟作为学员代表之一,在项目中的表现尤为出色。他与导师黄磊的合作也非常顺利,并从中得到了许多宝贵的经验,本篇文章就详细地讲述了他在本次技术实践中的心路历程。

由于邹伟受到导师的深度启发和热情鼓励,使他对开源项目的关注度进一步加深。在积累了更丰富的知识和经验后,他也获得了 Greptime 的实习机会。未来,他将与导师黄磊以及其他的开源前辈们,共同在开源的大道上以及 GreptimeDB 的发展路上携手向前!

同时也欢迎各位同学持续关注开源之夏和 Greptime 的活动,让我们一起在开源的路上发光发热。

初识开源之夏

我是邹伟,今年五月份在某 QQ 群机缘巧合地了解到了开源之夏- 2023 活动(以下以 OSPP 代称)。作为在校生,在日常专业课的学习中,其实没什么机会可以接触到一些大的项目,OSPP 给予了我一个机会可以了解到一些工业界最新的进展,并且参与实践,我觉得这是非常吸引我的一点。实际上,优秀的开源平台自然会吸引开发者的注意和参与,并促使他们做出贡献。OSPP 正是这样一个平台,它通过其优秀的开发流程、导师制度和奖励机制成功激发了我们参与其中的热情,因此,我对 OSPP 产生了浓厚的兴趣。

与 GreptimeDB 的故事

五月初,OSPP 上面展示了非常多的和数据库相关的项目,令人眼花缭乱,但是我当时一下子被 GreptimeDB 这家公司的名字和紫色环形图标吸引了。众所周知,grep 是 Linux 上常用的检索命令,而 grep time 则说明这个数据库大概和时间有关,抱着对这个社区好奇的心理,便加入了 GreptimeDB 开源之夏的交流群。

项目详情

名称:实现 GreptimeDB 数据库对 “Duration"和“Interval” 两个数据类型的支持

导师:黄磊

技术领域:Rust,Linux

项目概述:邹伟在 GreptimeDB 中实现两个数据类型,“Duration” 数据类型是度量特定类型的时间,可以用秒、毫秒、微秒或纳秒表示。“Interval” 数据类型通过计算两个时间点之间的天数表示时间差异,这些数据类型在表示和建模真实世界的时序场景中非常有用。

项目链接:https://github.com/GreptimeTeam/greptimedb

项目选择和申请

我对其中一个项目:“实现 GreptimeDB 数据库对 “Duration"和“Interval” 两个数据类型的支持”比较感兴趣,之所以考虑这个项目主要有两方面的原因:

  • 数据库类型系统模块相对独立,不会要求开发者对某个框架有特别深的理解,但还是需要有基本的编程能力;

  • 这个任务是在 GreptimeDB 原有的类型系统基础上,进一步支持 Duration 和 Interval 类型,考虑到原有的类型系统框架基本稳定,开发时理清类型系统本身以及与其他模块的交互,以此为切入点,相信代码逻辑大致清楚后,不会是一个特别难上手的任务。

于是我联系上了黄磊导师,经过一番交流之后,导师给了一些相关学习资料,方便我更快的了解 GreptimeDB 类型系统的整体框架。后面写项目申请书的时候,导师也帮忙审核修改了许多问题, 而当时的惴惴不安在名单公布的一刹那都消失殆尽了,6 月 26 号看到自己的名字出现在中选公示的时候内心真的非常激动

项目开发体验

项目开发过程中,我经历了从 0 到 1 的阶段。这个过程包括熟悉 GreptimeDB 的安装和使用、阅读类型系统的相关源码、理清新类型开发的完整流程、熟记类型需要的实现的功能和参数、以及遵循编程规范提交 Pull Request。虽然这些步骤看似繁琐,但它们是项目开发不可或缺的环节。因此,我不仅需要适应这些步骤,还要将它们培养成自己的开发习惯。

在项目开发前后我幸运地得到了社区前辈们的支持,他们为我在 GreptimeDB 开源社区中快速成长带来了很多帮助,对此我由衷表示感谢。首先要感谢我的导师,他对我在开发过程中遇到的困惑和瓶颈都有问必答。在重要的开发问题上我也会与他直接探讨。跟导师的及时交流让我在项目开展时逐渐建立起一种自信,即眼前项目最终一定能够完成,因为我所遇到的流程性问题都能在他那寻求解答,而对于相对复杂的细节和程序性问题也能够找他磋商,这对项目进展起到了非常积极的推进作用

总而言之,不论是项目申请阶段,还是开发阶段,导师以及 GreptimeDB 社区的前辈们都给我带来了非常好的体验。

收获与成长

通过参与这次开源之夏的活动,我感觉在开源世界中迈出了第一步,不仅学习了很多的编程技术,而且还认识了很多有趣的大佬。我仍然清楚的记得,在 GreptimeDB 中贡献了自己的代码,看见自己的名字出现在 Contributor 名单上,在 GreptimeDB 的 repo 中留下了属于自己的印记,我觉得这是我最大的收获,那种成就感我至今还记得。

导师寄语

导师简介

黄磊,GreptimeDB 后端工程师,毕业于北京大学,一位 Alfista/键盘车神/野生摄影师/全职程序员。毕业后进入蚂蚁消息中间件团队参与消息队列系统的开发,之后加入 GreptimeDB 与 Rust 编译器斗智斗勇。

导师有话说

邹伟同学是最早一批申请开源之夏 GreptimeDB 项目的同学之一,他不仅有着扎实的计算机基础知识,而且对参与开源项目充满了热情,很早就提交了关于支持 Duration 和 Interval 类型的设计方案,所以我们一拍即合。在后续的开发过程中,通过充分的沟通,更让我看到了他的认真、细致和对开源的热爱。只用了项目预计一半的时间,他就完成了大部分的开发工作。在这里也要感谢开源之夏,帮助千千万万想要参与到开源项目的同学走出了第一步,祝他们在开源的世界里玩得开心!

关于 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 最新更新,并与其他用户讨论。