欢迎光临散文网 会员登陆 & 注册

专访|郑东阳,那些看起来毫不费力的背后是什么

2023-09-11 09:58 作者:开源之夏  | 我要投稿


开源之夏专访持续开放中,欢迎已从开源之夏毕业或正在参与开源之夏活动的学生、导师一同加入专访行动,扫描文末二维码填写专访问卷,与大家分享你眼中的开源之夏!

本期采访人物是再次以学生开发者身份参与开源之夏的郑东阳同学,他在开源之夏 2023 中承担的项目是Apache OpenDAL (Incubating) 社区的Implementing a Webdav Compatibility Layer for Oay。

项目链接:https://summer-ospp.ac.cn/org/prodetail/231110459

#关于郑东阳

ospp:请简单介绍一下自己。

郑东阳:Hi,我是郑东阳。参与过 OSPP 2021 & GSoC 2022 & OSPP 2023,刚刚成为 Apache Committer,是一名开源爱好者。很高兴能通过开源之夏这个平台和大家交流 ~

ospp:你的个人标签之一是“开源爱好者”,你眼中的开源是什么?是什么让你爱好开源?

郑东阳:在参与到 GSoC-like 这类活动之前,我对开源的看法简单直接且现实。当时的我只是开源的索取者,开源对我来说就是免费获取(高质量、安全)应用程序和源代码的一种方式。但是当我参与到开源后,在索取者这个身份之外我还是一个贡献者,我参与了项目的开发,社区的活动以及和其他人的交流,这不仅开阔了我的技术视野也开阔了我的认知视野,原来世界上还有这些这么酷的事情正在发生着。

理所当然地,我把我参与的 OSPP 和 GSoC 的项目写到了简历里,在找实习和秋招的时候都收到了一些大厂的 offer。这些项目经历是不是帮助我获得了面试官的青睐这一点无法考究,不过我觉得也不重要了。这些经历让我对于开源有了新的看法,我相信它带给我的某些东西能在一定程度上影响我的职业生涯。我赞同 @wjsvec 所言:

参加开源之夏对很多同学只是打开了一扇开源的大门,而这扇大门背后,是绚丽多彩的宝藏。 

 ospp:你觉得参与开源是对现在的(高校)开发者来说是必选项还是可选项?如何迈出开源的第一步?

郑东阳:参与开源这件事情本身没有任何强制性,可以随时参与,即使随时退出也无可厚非。再加上高校的开发者大多是学生身份,可能对有些同学来说参加比赛、绩点以及专业科研更加重要,所以我觉得参与开源并非是必选项。如果自己有在 coding 上持续发展的规划,那么参与开源是一个很好的选择

ospp:你参加过开源之夏、GSoC等开源活动,也有过微软中国的实习经验,参与开源活动与公司实习有哪些相似之处和不同之处?

郑东阳:相似之处是都有一名 mentor 可以请教项目开发过程的问题,当然,提问题之前自己要先想清楚,能 Google 到解决方法的问题就不用打扰 mentor 啦。不同的之处在于沟通的方式;在公司线下实地实习的情况下,和 mentor 以及同事可以面对面同步地交流,比起开源活动中 issue、email 以及 Discord 、Slack 这些异步形式的交流会更加连续和方便。

同一个问题,在公司实习的时候走到对方工位上或者一起吃饭的时候讨论可能一会儿就解决了;但是在开源活动中,由于大家时区或者上线时间不一致就可能需要更多的“上下文切换”以及花费更多的时间。比如我在 GSoC 2022 中的 mentor 的时区就不一致,所以经常是我今天在 Slack 上请教,要等到明天或者后天才能收到答复(开源世界的交流我觉得一两天能收到回复算很快了哈哈哈哈)。不过这也并非全是坏处,因为意识到异步的交流会比较耗时,所以我在提问之前会好好研究这个问题,在提问的同时针对 mentor 可能的回复做进一步的提问(如果是 A 的话那么...如果是 B 的话那么......),尽量一次性把问题以及后续连带的问题全都摆上来,提高沟通效率。


#参与开源之夏

ospp:这已经是你第二次参与开源之夏活动了,最开始是如何了解到这个活动的?两次活动的体验如何?

郑东阳:初次参与开源之夏是在我研一的时候,当时是我实验室的同学(我称他为 k 老师)告诉我的。最初的想法是这里的项目我都看不懂,肯定很难申请上吧?在 k 老师的鼓励和我的一番思想斗争下我转变了想法——那就试试呗。当时申请的是 Nebula Graph 社区的项目:为图数据库 NebulaGraph 实现 JDBC 协议。当时确定选这个项目是因为我在实验室也写一些 Java,并且这个项目的描述里面的一些名词相比其他项目来说我更加能“看懂”。当时我的申请策略是锁定一个项目之后就 all in 进去,后来我在申请 GSoC 2022 的项目时也是如此。

导师评语:

郑东阳同学做事认真严谨,学习能力强。在他做项目期间,沟通顺畅,交流愉快,反馈及时,执行效率高。有自己的想法,会主动思考,推进事情发展,是一个靠谱的小伙伴。

By:NebulaGraph Committer——Laura

第二次参与开源之夏有些偶然。2023 年初的时候我在学习 Rust,粗略过了一遍语法之后我的想法是参与到一个开源的 Rust 项目中在做中学,刚好在 Twitter 上看到 @xuanwo 经常在分享 OpenDAL,于是抱着试试的态度 clone 下来研究研究,在使用的过程中发现 OpenDAL 的 WebDAV Service 中还没有实现 authentication,于是就尝试增加这项 feature,最终成功 Merge 了 PR。随后我打算从零开始为 OpenDAL 增加 Google Drive 支持,就不在这里展开了(关于我参与 OpenDAL 社区的过程有记录在我的博客[1]上,感兴趣的可以到我的博客上瞧瞧)原本我没有明确地打算参与 OSPP 2023,后来在 Twitter 上看到 @xuanwo 发推说今年 OpenDAL 有两个 slot 我就开始关注了,如果合适的话就尝试参与。后来在公布的两个项目中选择了 Implementing a Webdav Compatibility Layer for Oay。

OSPP 2021 & GSoC 2022 中我是等到项目发布了再和社区套磁,在这之前对于项目和社区完全没有了解;而 OSPP 2023 中我在项目公布之前就已经参与到社区中,对于 OpenDAL 也有了一些理解,所以申请的把握也更大。我认为在项目发布前就参与到社区中是最理想的,但是这种情况应该比较少,更多的还是等到发布了项目再去了解,OSPP 在公布项目和申请项目中间有一段时间让参与者去和社区套磁,这段时间我觉得是完全足够的。如果我没有在公布项目之前参与到 OpenDAL 中或者今年它没有这两个 slot 的话我应该不会参与,毕竟从零开始去了解社区和项目还是需要很多时间精力的,所以说我第二次参与开源之夏有些偶然。

导师评语:东阳同学积极热情,技术力强,具有丰富的开源协作经验,并能自我驱动地推进项目。在参与 OSPP 2023 之前,东阳就已经参与到 OpenDAL 社区贡献之中,展现自己专业水准的同时,也与社区建立了信任的基础。目前 Oay 网关对 WebDAV 服务的支持已基本完成,东阳也即将成为(发文时已正式成为) OpenDAL 新的  Committer,我们期待在开源社区中听到更多关于他的好消息。

By:Apache OpenDAL(Incubating) PPMC——PsiACE

ospp:作为在开源之夏和GSoC都有成功结项经验的人,你认为参与开源活动最重要的是什么?学习能力、沟通能力还是专业技能?最大的收获又是什么?有什么成功心得可以分享给大家吗?

郑东阳:个人觉得最重要的是敢于迈出第一步。不用觉得自己储备不够,也不必担心自己问的问题很蠢(当然,前提是有自己 Google 过、思考过)收获是学习到了新的东西,这种感觉很棒,也扩展了自己的可能性,接触到一些很 cool 很厉害的程序员并且和他们协作、向他们学习。心得是多沟通。充分的沟通很重要,它可以确保你始终把功夫花在正确的地方;最好不要自己一拍脑袋就开始狂写代码,确定好技术路线后才动手免得白费功夫。我有两次自己的想法没有和 mentor 达成一致的经历,庆幸是的我在动手写代码之前跟 mentor 沟通了才避免了做无用功。

ospp:你认为提升代码质量有什么途径吗?

郑东阳:首先,看别人的代码。学习如何设计接口、如何处理错误等等。再者,让别人 review 你的代码。学习相同意义代码更简洁直观的写法、发现自己对于某些 case 的疏忽等等。

ospp:请简单介绍一下你在本届开源之夏活动中承担的开源项目,目前项目进展如何?

郑东阳:OpenDAL(Open Data Access Layer) 是一个使用 Rust 编写的数据访问库开放数据访问层,使得用户能以统一的方式轻松高效地从各种存储服务 (Service) 中检索数据,并提供可扩展的中间件 (Layer) 来支持通用的请求重试、限流和指标上报功能。目前,包括 Databend / RisingWave / GreptimeDB / mozilla sccache 在内的多个软件都选用 OpenDAL 作为其存储访问接口。具体可见 OpenDAL README.md[2]。

我这次承担的任务是为 Oay(OpenDAL Gateway) 实现 WebDAV 服务协议,使得用户可以通过 WebDAV API 的形式访问 OpenDAL 支持的所有存储服务。目前项目开发进展顺利,已经完成了 WebDAV 服务协议的基本实现并且通过了 limtus 的标准测试。

ospp:你眼中的 Apache OpenDAL 是一个什么样的开源社区?

郑东阳:快速响应、新手友好、耐心 Review

OpenDAL provides a unified, simple, efficient, reliable, and observable data access layer that allows developers to seamlessly use different storage services and enjoy the best user experience. 

官网:https://opendal.apache.org/

ospp:你认为开源社区应该如何吸引更多的年轻开发者参与进来?
郑东阳:适当曝光:让开发者知道有这样一个社区存在,比如我就是通过 @Xuanwo 的 Twitter 了解到 OpenDAL 社区;

新手友好:有较为完善的新 contributor 指引能够让新手更加快速地理解项目结构从而参与到项目中;

快速响应:对于 issue 和 PR 的快速响应,太长的响应时间可能会消耗贡献者和用户的兴趣和热情。

#寄语

ospp:维持一份热爱并不是简单的事情,你觉得坚持并热爱是最重要的是靠什么?

郑东阳:兴趣 + “功利心”。兴趣是前提,一点“功利心”能够坚持得更久。比如游泳是一项对程序员很有益处的运动,坚持游泳对身体好;比如参与开源项目开发能提搞自己的专业技能和 reputation,或许还能给简历加加分。

ospp:整体来看,当前主动参与开源的高校学生其实并不多,有什么话想对计划参加开源之夏活动的学弟学妹们说?

郑东阳:种一棵树最好的时间是十年前,其次是现在。不必觉得自己知识/技能存储不够,很多东西都是在做中学。

#致谢

感谢在我参与开源的过程中给予我许多帮助的 k 老师、fisher、清蒸、wey、Laura、jesec、xuanwo、 PsiACE 以及各个开源社区,谢谢你们 :)

[1]https://young-flash.github.io/2023/05/03/OpenDAL%20%E7%A4%BE%E5%8C%BA%E5%8F%82%E4%B8%8E%E8%AE%B0%E5%BD%95/[2]https://github.com/apache/incubator-opendal#readme


END

专栏编辑:大梦

校对:校大山、郑东阳

制图:GoodWhite

专栏投稿请联系开源小助手:kaiyuanzhixia 或专栏编辑:Hungryfish34(备注“专栏投稿”加速通过),或填写下方专访信息收集问卷。


专访|郑东阳,那些看起来毫不费力的背后是什么的评论 (共 条)

分享到微博请遵守国家法律