开源之夏专访|长行于开源路的Apache Pulsar Committer 杨子棵

开源之夏人物专访专栏进行中,专栏将持续为大家带来开源之夏参与者的系列分享。欢迎已从开源之夏毕业以及正在参与的学生、导师一起加入专栏行动,有兴趣的小伙伴请联系开源小助手:kaiyuanzhixia 或小编姐姐:damengshiye(备注“专栏投稿”加速通过)

 

本期专访来自 StreamNative 和 Apache Pulsar 社区的软件工程师,本届开源之夏的项目导师——杨子棵。

 

一、自我介绍

踏入开源之路

我是杨子棵,一名来自 StreamNative 和 Apache Pulsar 社区的软件工程师

最开始了解到开源是在高二的时候,当时想要和几位同学一起写一些小游戏,需要一个多人代码协作平台,便了解到像 Github 这类的开源软件协作平台。但最开始都是小打小闹,经常把自己平时写的小项目、课程设计放到 Github 上,但是并没有参与到更加专业更加规范的开源社区中做贡献。

后来在大三的时候,也就是 2020 年疫情初期,我参与到了武汉 2020 防疫信息收集平台开源公益项目的贡献,这是我第一次参与到大型开源项目的贡献中,领略到了不少开源的魅力。在 2020 年的暑假时参加了开源之夏 2020 的活动,开始步入 Apache Pulsar 社区。

我主要熟悉的编程语言是 Java、C#、Go 等等。每个语言都有不同的特点,如 C#的优雅的语法、Java 的优秀丰富的生态、Go 的简洁和优秀的并发模型,它们也都有着不同的适用场景。我在参与开源贡献的过程中使用到了许多不同的语言,但其实会发现在开发贡献的过程中,最重要的是设计的想法、实现的思路,编程语言只是实现这些目的的工具

 

二、我与开源之夏

角色的转变

我参与了开源之夏 2020 和 2022,分别是以学生和导师的身份参与的。

我在开源之夏 2020 中以学生的身份完成了 【Pulsar 的 C#客户端的特性的开发】,包括分区生产者、批量发送、端到端加密等等,为使用 Pulsar C# 客户端的用户提供一些在使用消息系统时所需要的关键功能。

在开源之夏 2022 中我则以导师的身份参与,指导的项目是【在Apache Pulsar Go客户端中支持大消息处理】,在 Pulsar Go 客户端中实现大消息的分块发送,让用户能够通过 Go 客户端发送一些规模较大的消息,如视频、语音或者其他大容量数据的传输,目前这个项目正在进行中。

 

三、我与开源社区

关于 ApachePulsar

开源社区与在校生

开源的魅力

在开源之夏 2020 结束后,我对 Apache Pulsar 很感兴趣,也很看好 Apache Pulsar,在参与开源之夏后选择了继续在社区中做贡献。

关于 Apache Pulsar

云原生时代消息队列和流融合系统,提供统一的消费模型,支持消息队列和流两种场景,既能为队列场景提供企业级读写服务质量和强一致性保障,又能为流场景提供高吞吐、低延迟;采用存储计算分离架构,支持大集群、多租户、百万级 Topic、跨地域数据复制、持久化存储、分层存储、高可扩展性等企业级和金融级功能。

GitHub 地址:

http://github.com/apache/pulsar/ (文末阅读原文直达)

场景关键词:

异步解耦 削峰填谷 跨城同步 消息总线

流存储  批流融合  实时数仓 实时ETL 金融风控

在最开始参加社区的时候,我认为社区就是一群开源爱好者聚在一起共同开发一个开源项目,但在参与的过程中慢慢发现,其实社区的概念相对于这个项目本身、代码本身来说更加重要,而项目本身其实是社区的产物。在成熟的开源社区中,有各种优秀的、成熟的开源社区制度,有着来自不同领域的爱好者,这些都是产出高质量项目的保证。

在参与社区的过程中,社区中交流也是非常重要的,只有通过和社区的其他开发者多交流,才会发现自己的方案的不足之处,让方案更加完善,正如 Linus 所说:“Given enough eyeballs, all bugs are shallow“,有足够多的人来看你的方案或代码,可以发现更多的问题。在和社区开发者交流过程中,也会学习到许多知识,了解到用户的需求,我觉得这是一个非常好的学习和成长的机会。

对我来说开源的魅力就是我们能够以追求极致的角度去完成事情,其实在参与社区开发的过程中会发现,社区中的开发者都是追求极致的人。在各种方案设计、代码编写的过程中,在社区的交流讨论中,我们会尽可能地去发现问题,去解决问题,去让自己的方案更加完善,让自己的代码更加健壮。

开源的另一个魅力是我们能够参与到许多具有挑战的事情上,我觉得不断做富有挑战的事情是维持自己对技术热爱的一个有效方式。一个开源项目往往有着来自各行各业、来自不同领域的用户,面向的场景也非常复杂,带来的挑战也非常大,这促使我们以追求极致的角度去完成更多富有挑战的事情。

我觉得 Apache Pulsar 社区就是充满这些开源魅力的社区,同时也是充满前景的社区。我在参与社区贡献的过程中,一步一步地见证了我和社区的共同成长,Star 数量、贡献者数量都翻了倍,这让我觉得 Apache Pulsar 社区是个年轻的、充满活力的社区,我非常看好 Apache Pulsar 并将长期投身于社区贡献中。成为 Apache Pulsar 的贡献者后,我加入了 StreamNative 公司,并成为了 Apache Pulsar 的 Committer,希望将来能够继续让自己和社区、和公司一起成长。

参与开源社区贡献对在校生来说是一个含金量非常高的机会,我非常推荐在校学生参与到开源社区中来。许多同学其实在学习的时候往往很难找到能够将自己的知识落地到实践的机会,导致自己掌握的知识其实并不牢固,我觉得开源贡献是一个非常好的实践机会,开源项目往往有着众多的用户,面向众多的业务场景,通过开源贡献能够让自己更扎实地掌握更多知识技能。我比较推崇在实践中学习,只有实践掌握到的知识才是牢固的。在贡献的过程中能够大大提升自己的技术、交流能力,对于求职来说也具有非常大的帮助。同时在参与开发的过程中,也能够了解到许多业界正在使用的最新的技术,并参与到这些新技术的研发中,我觉得这是一个非常有成就感的事情。

开源社区是既适合新手入门,也适合老手提升的地方。可以通过寻找一些标记有 good-first-issue 或者 help-wanted 的 issue 入手,这些都是边界清晰,适合新手入门的任务。最重要的是多参与到社区的交流中,在动手写代码前先将自己的想法分享到社区中,通过交流会避免自己闭门造车遇到各种本可以避免的坑。阅读官方文档、积极和社区人员交流是快速了解社区的有效方式。在不断地开源贡献中,慢慢地就可以承担一些特性的开发,得到社区成员的认可后,就可以晋升成为 Committer 了,期待越来越多的同学可以成为 Apache Pulsar 的 Contributor 和 Committer。

 

四、收获和寄语

参与开源的动力

专业提升和就业选择

对我来说,最大的开源动力就是我们能够看到世界上越来越多的人能够从我们的社区、项目中收益,我们都在朝着这个目标不断完善我们的项目,不断地推广项目。

在参与开源之夏和开源贡献过程中,收获的不仅仅只是代码能力的提升,我还慢慢学会了如何规范地开发项目,学会了如何学习,了解到整个开源社区的优秀的运作方式,提升了许多诸如沟通交流、异步沟通的软技能等等。同时也为我获得了在 StreamNative 的第一份正式工作(了解更多内容)。

从最初以学生的身份通过开源之夏活动参与社区贡献,到现在以导师的身份帮助其他同学参与贡献,在这个过程中获得了非常多的收获和成长。在参与贡献前我并不了解消息队列系统,并不熟悉分布式开发等等,在解决一个又一个难题的过程中,我也在掌握着越来越多的技术知识,在越来越深入地参与到社区交流讨论的过程中,我对于社区的归属感也更加强烈。想到自己的代码被合并,并被运行在分布于世界各地、应用于各行各业的机器上,也让我感受到了前所未有的成就感。

随着 Apache Pulsar 社区的不断壮大成长,看到了越来越多的人参与到了社区贡献,同时也非常希望更多的同学也能参与到其中,开源之夏就是这样一个非常好的开源入门的机会,希望参与开源之夏的学弟学妹们能够在这个活动中获得许多收获,感受到开源的魅力。

 

{{o.name}}
{{m.name}}

猜你喜欢

转载自my.oschina.net/u/5283003/blog/5551357