腾讯亿级用户规模自研业务的上云实践解读,立即报名 了解详情
写点什么

成为 Apache 顶级项目核心贡献者是一种什么样的体验?

二叉树|记录与时代并行的技术人

  • 2018-12-17
  • 本文字数:2255 字

    阅读完需:约 7 分钟

成为Apache顶级项目核心贡献者是一种什么样的体验?

几年前,国内对开源的认知是:我们做不了开源,我们创新力不够。那时候国产开源项目要进 Apache?想也别想!而现在 Apache 里面的国内开源项目一只手都数不过来。这里是二叉树第四季,我们跟你聊聊开源这件事儿,本期嘉宾是一位 Apache 基金会顶级项目里的核心贡献者,他来聊聊成为核心贡献者是一种什么样的体验。


“什么时候去做件大事吧!”


比如:成为 Apache 基金会顶级项目里的一位核心贡献者。


这是一种什么样的体验?


下面且听 Apache Flink 项目 Committer、Jark’s Blog 的博主——伍翀(花名:云邪)的分享。


00:00 / 00:00
    1.0x
    • 2.0x
    • 1.5x
    • 1.25x
    • 1.0x
    • 0.75x
    • 0.5x
    网页全屏
    全屏
    00:00


    刚刚进入阿里的前半年,云邪是失落而迷茫的。


    大学时代的云邪在各方面都非常优秀:功课做得好,导师很器重,涉猎过前端、PHP、Ruby、Spark 等技术,做过几个网站赚外快,搭过论坛,还做过一个颇为受欢迎的开源博客主题 Jacman,在 Github 收获了 900 多个 star。


    简而言之,是一位学霸。


    “后来到研究生毕业的时候,我被阿里巴巴的技术氛围所深深吸引,期望着加入一个技术殿堂般的团队。”


    2015 年,云邪进入了阿里的实时计算团队,准备要一展身手、做一番重要的贡献。


    但是在大公司里,个人更多的是充当着螺丝钉。阿里是个卧虎藏龙的地方,身边有很多特别优秀的小伙伴。半年的时间很快过去,云邪觉得自己没有达到心中预期的成绩,失落感也就随之而来。



    同样在 2015 年,Apache Flink 正式升级成为 Apache 基金会顶级项目。早在研究生阶段就研究过 Spark 的云邪,对 Flink 项目并不陌生。这是大数据领域一个新兴的明星项目,跟实时计算有密切的关系。技术嗅觉告诉他,这可能会是未来大数据技术的发展方向。


    有一天,云邪找到他的主管,说:


    “我想去研究 Flink。我觉得我们团队需要有一个人去研究这个方向。”


    主管很支持,并且设定了一个目标:


    “一年成为 committer。”



    英文直接翻译过来成为中文,committer 的意思是“做过承诺的人”。在一个开源项目里,往往有一个核心的开发者或者开发团队来把握整个项目的发展策略,其他人来给这个项目贡献代码之后,由这个核心团队来审查,决定是否合并。项目越庞大、越重要,贡献的人越多,这个核心的团队就越重要。


    在开源项目的团队里,很多决策是基于“信任”机制。一般的开发者来贡献代码,就是一个贡献者(contributor)。每一个贡献上来的代码经过代码审查,经过探讨与修改,符合项目发展方向的就被合并入主线。当一位贡献者做过很多贡献,核心团队的大部分人认为这是一位很靠谱的贡献者,懂得为自己的投入做出承诺,则该贡献者会被认可成为一位 committer。


    一般而言,这是一个相对漫长的过程。项目越是重大,被认可成为 committer 的难度就越大,因为需要获得更多人、更深的信任。


    “你从一个对 Flink 一无所知的小白,要成为一个 commiter,中间还是有很多困难要跨过去的?”


    “嗯,当时也没有想很多,其实当时这个目标还是设的挺胆大的。”


    “后来我就开始研究 Flink 的源码,大概花了两三个月的时间,把 Flink 的核心源码都看了一遍,一边看代码一遍写博客。” 这些博客文章后来也都成了国内学习 Flink 的优质材料。


    那个时候,Flink 社区里国内的参与者还比较少。



    “你还记得你提交的第一个 patch 吗?”


    “我当时提交的第一个 patch 是 fix 了一个非常简单的 bug,就是打印的日志里面的一个单词写错了。然后当时提交上去,很快,当天,社区的人就帮我 review 了,之后就进入了 master 的分支。虽然它是一个非常小的改动,但是你就觉得你终于进到社区里面去了,你的名字、你的邮箱就显示在了他那个仓库的 contributor 列表里。”


    “这件事情就能让你高兴好久。”


    随着提交的次数越来越多,社区里的人开始注意到云邪,后来的一次线下技术交流中,Flink 的创始人、dataArtisans CTO —— Stephan 做了技术分享和交流,云邪也有幸参与了,这是云邪第一次与这个层面的技术大牛零距离接触。


    “Stephan 先生是我的偶像:)”


    “那次就突然发现,原来在邮件列表接触的技术大牛,在线下是这么的平易近人!这让我对社区产生了更大的兴趣。”


    “后来又有一次技术交流的时候,他还能够认得我,这件事情我还是高兴挺久的。”


    “后来这一年你大概提交了多少次?”


    “提交了大概有五六十次,总共有上万多行代码,最大的一个有五六千行。最大的一个来来回回讨论了很久,在邮件列表里面来来回回有上百次的讨论,最后进去了,也是比较开心。”



    “2017 年春节的时候,我收到了社区 committer 的邀请信。”


    “你觉得成为 committer 对你来说最大的收获是什么?”


    “我觉得成为 committer 最大的收获是这个过程中你学到的东西。社区里面有特别多的大牛,社区的代码规范要求也比较高,在这个过程中,你提交的每一个代码都有那么多牛人来指导你,来纠正你的设计,那对你其实是非常宝贵的财富。你这一段时间坚持下来,成为了一个 committer,你再回过头来做一些其他的事情,去做一些其他的设计的时候,你会更加有信心。”


    “你觉得作为一个软件工程师最高的状态是怎样的?”


    “就像 Linus 一样,把开源写代码当作是人生的一种乐趣,而不是一个谋饭碗的东西,我觉得是非常非常幸福的。”


    现在的云邪,也已经进入一个为社区里面的新人传授布道的新角色。12 月 20 日 -21 日,云邪将在 Flink Forward China 2018 (Apache 基金会官方授权,国内首次 Apache Flink 顶级峰会)带来主题演讲。借着这个机会,他也希望邀请更多人来一起关注 Flink,一起参与到 Flink 项目的贡献工作当中。


    “开源更多是一种责任。社区对你的认可,是希望你能够对社区有更多的贡献,能够帮助社区更多的去成长。”


    “中国的 committer 越来越多,当然也是一件好事了!”


    2018-12-17 19:482821
    用户头像
    二叉树视频 InfoQ旗下短视频品牌

    发布了 98 篇内容, 共 27.5 次阅读, 收获喜欢 178 次。

    关注

    评论 1 条评论

    发布
    暂无评论
    发现更多内容

    CircleIndicator组件,使指示器风格更加多样化

    OpenHarmony开发者社区

    OpenHarmony

    不愧是阿里内部“千亿级并发系统架构设计笔记”面面俱到,太全了

    冉然学Java

    Java 高并发系统设计 技术栈 构架 高并发处理

    如何构建面向海量数据、高实时要求的企业级OLAP数据引擎?

    字节跳动数据平台

    数据仓库 云原生 OLAP Clickhouse

    行云管家V6.5.1/2/3系列版本发布:数据库OpenAPI能力持续强化

    行云管家

    数据库 版本 IT运维 行云管家

    华为2023届提前批预热开始!左 神的程序代码面试指南终派上用场

    程序猿阿宇

    Java 算法 后端 Java工程师 算法刷题

    怒冲GitHub榜首!京东T8幕后打造高并发面试手册,狂虐阿里面试官

    程序猿阿宇

    Java 高并发 阿里 构架 面试‘

    兆骑科创高质量海归人才双创服务平台,线上直播路演

    兆骑科创凤阁

    HDD杭州站·HarmonyOS技术专家分享HUAWEI DevEco Studio特色功能

    HarmonyOS开发者社区

    HarmonyOS

    十字链表的存储结构

    乔乔

    7月月更

    墨天轮高分技术文档分享——数据库安全篇(共48个)

    墨天轮

    MySQL 数据库 oracle postgresql 数据库安全

    用GaussDB(for Redis)存画像,推荐业务轻松降本60%

    华为云开发者联盟

    数据库 redis 存储 GaussDB ( for Redis ) 用户画像

    Okaleido上线聚变Mining模式,OKA通证当下产出的唯一方式

    鳄鱼视界

    众人呼唤的 Java 单商户系统,究竟有什么过人之处?

    CRMEB

    闭关吃透Java性能手册,成功拿到字节Offer!不愧是阿里内部资料

    程序猿阿宇

    Java 后端 阿里 Java工程师 构架

    BSC智能链合约模式系统开发详情

    l8l259l3365

    Beyond Compare 4 实现class文件对比【最新】

    白粥

    工具 Beyond Compare 文件对比

    终极套娃 2.0 | 云原生交付的封装

    尔达Erda

    云计算 程序员 微服务 云原生 开发

    产品动态丨Android 13 高效适配全新升级

    MobTech袤博科技

    android

    华为被迫开源!从认知到落地SpringBoot企业级实战手册(完整版)

    程序猿阿宇

    Java 程序员、 秋招 构架 面试‘

    兆骑科创海内外高层次创新创业人才服务平台,双创成果转化平台

    兆骑科创凤阁

    哪个led显示屏厂家更好

    Dylan

    LED显示屏 led显示屏厂家

    1000个字带你一次性搞懂JavaAgent技术,反正我是彻底服了

    程序员啊叶

    Java 编程 程序员 java面试 构架

    成为Apache顶级项目核心贡献者是一种什么样的体验?_开源_二叉树视频_InfoQ精选文章