电子科大陈瑞杰:开源不是那么的遥不可及

原创
2023/12/14 10:19
阅读数 27

file

个人介绍

大家好,我是来自西安电子科技大学计算机学院软件工程专业的陈瑞杰,本科就读中北大学,本科通过校赛加入ACM校队,参与ACM-ICPC、CCPC等算法比赛,获区域赛铜奖(CCPC铜首,差点银,比较可惜),以专业第三保研至西安电子科技大学,保研后在字节跳动实习了3个多月。

开源之路

本科的时候学习Java web的时候会用到Tomcat等这些带有Apache前缀的组件,当时好奇查了一下Apache基金会,是一个专门为支持开源项目而生的非盈利性组织,Apache基金会管理的项目各个都是全世界的大佬共同付出的结果,各个都是业界的标杆,关键是还免费提供给全世界人使用,当时自己也是一名计算机专业的学生,心想那天我也能成为这么一个人,不说开发出一个业界标杆,最起码参与贡献一个全世界人都使用的软件也可以。

研一的时候听实验室同学说上届学长参与了开源之夏这个比赛,据说都是对顶级开源社区贡献代码,我一听感觉非常高端大气上档次、非常牛逼,心想学长能中选,那我至少得尝试一下,因为第一次参与,所以能做的就是先把项目跑起来,然后尽可能得去看里面的源代码,尤其是跟自己课题相关的那部分源码,尽可能的去丰富自己的设计方案提高自己的中选率,当然如果有机会的话提前参与社区贡献那当然是再好不过了~欢迎大家来Apache DolphinScheduler贡献代码~

在我刚接触计算机行业,也就是大一的时候,我眼中的开源是遥不可及的,开源都是世界级的大佬才能参与的,当第一次合并了自己提的PR后,发现原来开源不是那么的遥不可及,它包容性很强的,社区的大佬们各个来自国内头部科技公司,但是他们不会吝啬自己的技术分享,你有问题,他们虽然可能因为工作的原因不能秒回你,但是有空了一定会给你解答。它也是充满技术氛围的,每个人都可以把自己遇到的问题和自己发现的Bug、想到的Feature、Refactor、Improvement等类似发帖子一样发出来,然后一定会有社区的人员去答复你,可能答复你的是社区的管理员如PMC、Committer,还有可能是一些持续贡献的社区的普通Contributor。

Apache DolphinScheduler社区体验

Apache DolphinScheduler社区也给我留下了活跃和友好的印象。我参与了社区在开源之夏的两个项目:master/worker/api模块日志优化和任务依赖模式重构。在日志优化项目中,我完成了我的第一个PR,优化了三个模块的日志输出。这个项目虽小,却让我学会了社区的协作流程和技术实践。社区的进勇老师、顺风老师和其他大佬都给予了我很多帮助。

在任务依赖模式重构中,我改进了依赖类型节点的逻辑,并更新了相关文档。这个项目让我对社区的核心模块有了更深入的理解,并修复了dev分支的两个bug,得到了社区大佬的认可。

我眼中的DS社区是包容性很强的,充满技术氛围,但凡你有想法,比如重大的重构或者提升,你都可以给社区发送邮件,如果是小Bug或者其他小的改动,你可以直接提issue,在Apache DolphinScheduler社区,你不用担心你解决不了,不要怕遇到什么问题,这里有非常多的大佬,在这里你可以大大提高自己的代码阅读水平、工程编码能力、工程设计能力,当然也可以认识很多的行业大佬,各行各业的精英,有些来自融资数亿美元初创公司(比如我的课题导师杰哥和强哥),有些来自国内头部互联网科技公司(比如我的课题导师枫哥),有些来自国内top高校(比如饶哥)。

我主要参与了两个大的课题,都是DSIP(比较重大的改造)。

“相关链接”

https://github.com/apache/dolphinscheduler/issues/10911

https://github.com/apache/dolphinscheduler/issues/14338

第一个是“为 DolphinScheduler Python API 添加 资源文件加载插件”。当时DolphinScheduler Python API 只能传递字符串格式传递任务 的参数,但通常来说,用户希望具体的执行 代码储存在其他系统中(希望更好维护和集成),例如将具体文件存储在本地文件系统、GitHub、GitLab、Amazon S3、阿里云 OSS 等。这个课题主要是实现 Resource 的插件化,具体的插件 Resource 包括本地文件系统,GitHub, GitLab, Amazon S3, 阿里云 OSS,还有文档的编写,包括开发(如何二开实现插件)和使用(每个 Resource 插件使用)。

第二个是“将数据源中心扩展成连接中心”。DolphinScheduler 有⼀个 Datasource Center 的组件,⽤于管理 sql 任务的外部连接,如 Mysql、Hive、Spark 等。但是不只是SQL任务,其他⼀些 DolphinScheduler 任务插件也需要 外部连接,⽐如AWS EMR任务、Zeppelin任务、K8S任务等。我们可 以丰富需要 Datasource Center 来管理连接的场景,尤其是那些具有凭据的外部系统并将其升级到连接中心。这个课题主要是实现将 Datasource Center 的名称更改为 Connection Center、重构部分AWS EMR、Zeppelin、K8S、Sagemaker 任务插件,方便用户在连接中心管理外部连接。

未来展望

希望Apache DolphinScheduler社区越来越活跃,用户越来越多~

希望通过持续贡献Apache DolphinScheduler,逐渐的承担一些重大、更具挑战的课题,成为Apache DolphinScheduler的核心开发人员!让全世界的工程师最好的工作流编排平台~

社区的支持

希望能够担当一些更具挑战性的课题,让自己能够对Apache DolphinScheduler认识更加深刻~

参与Apache DolphinScheduler 社区有非常多的参与贡献的方式,包括:

贡献第一个PR(文档、代码) 我们也希望是简单的,第一个PR用于熟悉提交的流程和社区协作以及感受社区的友好度。

社区汇总了以下适合新手的问题列表:https://github.com/apache/dolphinscheduler/issues/5689

非新手问题列表:https://github.com/apache/dolphinscheduler/issues? q=is%3Aopen+is%3Aissue+label%3A%22volunteer+wanted%22

如何参与贡献链接:https://dolphinscheduler.apache.org/zh-cn/community/development/contribute.html

来吧,DolphinScheduler开源社区需要您的参与,为中国开源崛起添砖加瓦吧,哪怕只是小小的一块瓦,汇聚起来的力量也是巨大的。

本文由 白鲸开源科技 提供发布支持!

展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部