国内首位!Node.js社区将阿里云工程师张秋怡吸纳为CTC成员

继去年MariaDB基金会将阿里云数据库高级专家彭立勋列为个人成员后,今年又有一位阿里云工程师在国际技术社区重要工作中有所担当,她就是张秋怡。

张秋怡,花名洗影,阿里云云应用服务团队工程师。2016年,她毕业于中山大学软件工程专业,现在在阿里云alinode团队参与 alinode  Node.js 应用服务解决方案的开发和维护,同时也对阿里内部和外部的客户提供技术咨询的服务。


Node.js社区宣布将张秋怡吸纳为CTC的页面(@joyeecheung 为张秋怡在Github的账号)

近日Node.js社区决定,将张秋怡吸纳为CTC(核心技术委员会)成员,而这也使得她成为国内首位Node.js社区CTC成员。

CTC 主要负责 Node.js Core 大方向上的技术决策。其成员主要的工作包括:参加周会讨论 GitHub Node.js 组织下面所有提交给 CTC 讨论或者 Review 的事项,参与 CTC 邮件列表的讨论,对有争议的 issue 进行投票,Review Node.js Core semver-major 的不兼容改动(semver-major 的 PR 必须要有 CTC 成员的 sign-off 才能合并),以及其他 Node.js Core Collaborator 的工作 (CTC 成员也是 Collaborator)。

聊到国内为什么到今天才有第一位CTC成员时,张秋怡表示并不很清楚,但她分析可能和以下两个原因有关系:1.语言障碍;2.Node.js社区的人基本都是志愿者,需要大家牺牲个人大量周末休闲的时间。有些原因她没在访谈中说,但却在稍早些时候——《Node.js Collaboration Summit 与 JSConf EU 纪行》一文中有所点明。她当时感叹中国开发者在国际社区与标准制定过程的缺席,进一步探究原因她则发现,国内工程师大都喜欢自己去寻找曲线救国的解决方案,缺乏标准意识,从长远角度解决问题……从这来看,或许也能多少知道为什么在国际技术社区看不到来自国内的现象级人物和技术贡献的根本原因。

尽管这位年轻的CTC成员本科毕业才一年,但她的技术实力很雄厚,而这来源于她在Node.js领域四年的持续耕耘。因此张秋怡在成为CTC成员之前,也收获了来自小伙伴的钦佩。2016年年底,张秋怡受邀在Node.js Interactive 2016 North America上做分享,归来后她写了一篇文章《Node.js Interactive 2016 North America 纪行》做记录,阿里的技术同学除了在内网感叹对最新进展介绍全面、信息量太大的同时,也有人发自内心的问:“如何成为像你这样的大神。”

对于下一阶段,张秋怡说,原来做什么,现在还会继续做什么,只不过每周会多参加一次语音会议。在阿里云的工作,她说,将继续维护 alinode 和开发新特性,“会将Node8功能集成到 alinode 平台上,提供更多为 Node.js 应用监控调优和故障排查的手段。”

更多细节,请查看以下完整访谈内容:



张秋怡:我 2016 年从中山大学软件工程专业毕业,现在在阿里云的 alinode 团队参与 alinode  Node.js 应用服务解决方案的开发和维护,也对阿里内部和外部的客户提供技术咨询的服务。目前主要做 Node.js 应用的监控调优、故障排查和稳定性保障相关的事情,开发的工作从底层 Node.js 运行时的定制,到上层的监控平台和可视化调优工具都有涉及。此外也协助一些阿里云其他产品与 Node.js 开发相关的工作。



张秋怡:第一次接触 Node.js 大概是在大二的时候,有同学给我们看了他用 Node.js 写的一个 Demo,当时学习过 Python 的 Tornado,发现 Node.js 的 Koa 和 Tornado 比较相似,出于好奇心就了解了另一个平台下的 Web 开发对比来看看。后来对编程语言的编译器和虚拟机实现产生了兴趣,在探索 JavaScript 引擎的实现的同时也有去阅读 Node.js 的源代码,了解抽象了计算机网络和操作系统这些课程知识的跨平台库(libuv),与一个脚本语言的运行时(v8)嵌在一起在实际应用中会长什么样子。大三实习转岗到 alinode 团队之后开始有在 Node.js Core 的代码上做一些开发,但是没有向上游提交过 patch。



大四毕业前在 Node.js Live Beijing 做过一次关于 V8 GC 日志的分享,被 Node.js 基金会邀请到当年北美的 Node.js Interactive 再做一回,在那次会议上有一个 Code and Learn 的活动,现场指导熟悉给上游提交代码的流程,因为这个契机就开始熟悉上游 Node.js Core 的工作流程了,后面在业余时间也有不断给 Node.js Core 做一些维护 issue tracker、提交和 Review 代码之类的事。



要说为什么会一直不断做这些的话,大概就是没有家庭负担,所以业余时间比较闲吧……加上 Node.js 社区整体氛围还是很友好的,对新加入的贡献者都很鼓励,大家都很遵守 code of conduct ,比较有礼貌。偶尔有疑似火药味出现的时候也会私下沟通,很注意不要互相冒犯,所以在里面一起工作感觉很愉快。碰过的代码多了之后也会经常被 ping 去做 code review,慢慢就变成习惯了。Node.js 底层的代码涉及的技术范围比较广,在参与贡献的过程中也可以了解很多平时工作不怎么打交道的技术领域。

张秋怡:我主要是参与了 WHATWG URL 标准的实现(在 8.x 我们已经做到能完全通过 Web Platform Test 了),和内部 benchmark 的一些改进,平时也会帮忙维护 issue tracker 和 review 代码。不过这种是比较成熟的开源项目,日常工作其实是维护 issue 和 code review 更多一些。



张秋怡:坦白说我也不是很清楚,我认识四五个在国内工作的 Node.js Core collaborator,感觉区别只是活跃程度不同吧,我平时泡在上面的时间会多一些。

据我了解,现在 CTC 里起码一半的人本职工作和 Node.js Core 的日常维护没有关系,完全是志愿者,真正受公司赞助对 Node.js 这个项目负责,全职参与开发的人寥寥无几。我已经算是工作关系比较密切的,平时工作也要接触同一个 code base。虽然维护上游代码并不是我的本职工作,只是 APM 这类工作的本质需要对运行时底层做一定的修改而已,所以我在上游提交的代码和我在内部提交的代码关系也不大,维护 issue 和做 review 这些工作关系就更远了。我认识的其他几个 collaborator 平时的工作和 Node.js Core 的日常维护关系也不大,日常工作如果忙起来,留给开源项目做义务劳动的时间也不多也很正常。



工作和 Node.js 相关是一回事,愿不愿意牺牲自己周末玩乐的时间,陪伴家人的时间去给底层依赖的项目做义务劳动是另外一回事,毕竟 Node.js 已经是很成熟的开源项目,多一个维护者少一个维护者影响并不大。但是这样比较知名的项目日常维护需要投入不小的精力,每天一觉起来收件箱多出上百个通知是家常便饭,每个月都会有两三百个 commit 合并到 master,相应地每天都有很多 PR/issue 要看,所以全跟进是不太可能的。Node.js 的 collaborator 有不少不太活跃选择退回权限的,CTC 也有一些成员因为个人事务变多没有时间继续参与 CTC 的活动而离开(参考 CTC Emeriti:https://github.com/nodejs/node#ctc-emeriti),大家也都很理解。我们也有完整的流程来处理这种情况,有新的活跃贡献者出现,也有完整的流程吸收成为新血,总体有进有出还是比较健康的。

从我的角度看来,我和其他人的区别只是我燃烧了一下自己个人的时间而已,我能理解为什么其他人不选择放弃更多自己的个人时间做这种义务劳动,也不保证自己会一直坚持花费这么多的业余时间(现在本职工作比较忙所以活跃程度也有所降低,但还是尽量保持每周都会做一些工作),这些都是很正常的。



如果要拿国内和国外对比来问(考虑到人口基数)的话,还有一点是语言障碍。虽然 CTC 大概有一半的人母语并不是英语,也不居住在英语国家,collaborator 母语不是英语的也很多,但是 Node.js 的注释、commit message 的语言、issue tracker 上交流的语言都是英语,CTC 每周开电话会议也是用英语的。另外国外开会和活动的时候,即使有旅费赞助,考虑到语言和签证问题,国内的开发者要去参加难度也高一些,我到国外开会的时候很多人都表示他们是第一次和来自中国的活生生的开发者交谈。双方平时打的交道不多,了解不深的话比较难吸引作为新成员进来。

张秋怡:CTC 主要负责 Node.js Core 大方向上的技术决策,成员主要的工作包括参加周会讨论 GitHub Node.js 组织下面所有提交给 CTC 讨论或者 Review 的事项,参与 CTC 邮件列表的讨论,对有争议的 issue 进行投票,Review Node.js Core semver-major 的不兼容改动(semver-major 的 PR 必须要有 CTC 成员的 sign-off 才能合并),以及其他 Node.js Core Collaborator 的工作 (CTC 成员也是 Collaborator)。



Collaborator 的人数更多一些,只要在 Node.js Core 有足够多的代码贡献就可以成为 Collaborator,Collaborator 有 push 到 GitHub 上 nodejs/node 这个代码仓库的 master 分支的权限和运行 CI job 的权限,也可以编辑、标记和关闭 nodejs/node 的 issue 和 PR。



两者的主要区别……日常能察觉到的大概就是 semver-major 的 PR 需要通过至少一个 CTC 成员的 code review,所以一个 PR 如果被标记成了 semver-major 而且有 Collaborator review 后同意合并了,但是还没有 CTC 成员 LGTM 的话,会需要 ping @nodejs/ctc 这个团队的人提醒过来 review(注:LGTM 就是 Look Good To Me,通过了 code review 的意思)。另外有争议的 PR 或者 code review 中产生的问题如果没办法在讨论中达成一致,会召集 CTC 来投票做决定。

此外还有 CTC 每周都要开语音会议和有自己的邮件列表。



张秋怡:大家日常在 GitHub 上都是低头不见抬头见的,还有就是包括很多 collaborator 都会上的 #node-dev 的 IRC 频道和 twitter。CTC 每周都会开一次语音会议,讨论 Node.js 组织下面所有标记了 ctc-agena 或者 ctc-review 的 issue/PR,把反馈、决定或者下一步要做的事情回复在对应的地方。不过因为我们分散在世界各地,CTC 的会议时间是北京时间周三晚上7点,晚上12点,周四凌晨4点三个时间轮流的,由于时差一般每次会议只能聚集到大概三分之一到一半的人。此外 CTC 还有自己的邮件列表用于讨论一些比较敏感的话题。



线下主要是 Node.js 基金会每年会组织两三次 collaboration summit,一般会在 JavaScript 或者 Node.js 社区的大型会议周边举行。不过这个活动的参与范围也包括所有的 Core Collaborator 和 Node.js 基金会下其他 Working Group 的成员。一般 Collaboration Summit 主要是分小组讨论一些需要集齐人讨论的问题,线下见面谈会更有效率一些。


张秋怡:alinode 运行时的改动主要是 APM 方面的一些东西,包括从底层采集性能数据输出到日志等,以及接受远程开启性能数据快照(CPU Profile、Heap Snapshot、GC Log 等)并定时关闭的功能,配合我们的 agent 和控制台完成对线上 Node.js 应用的监控和调优。优势其实主要不在于运行时本身,是我们提供配套的监控、报警、性能调优、慢日志和错误日志采集等,一系列完整的用于保障 Node.js 线上应用稳定性、方便故障排查和优化线上应用性能的服务。



我平时的工作除了 alinode 运行时和配套工具服务的开发,还要做一些技术咨询的工作,另外最近主要在协助阿里云的其他产品团队做一些 Node.js 相关的比较上层的工作,按比例的话在公司的实际工作内容其实和我在上游的工作交集不太多,虽然保持对上游变动的关注对我的日常工作也是有用的。线下聚会我会借助一些其他机会去,比如到被附属的开发者会议投 Proposal 做 Speaker,或者像今年集团派遣参加 JSConf Europe 就顺便参加在 JSConf 前两天举办的 Collaboration Summit,这样申请差旅会比较合理一些。



刚开始参与社区的时候因为收件箱消息太多,上班时间也会处理一下邮件,不过现在日常工作比较忙,虽然工作中有一些问题还会需要到 ssue tracker 和上游的代码提交记录去寻找相关线索,但是一般达到目的就会回去继续完成公司的工作,避免注意力分散得太严重。现在主要是下班时间在参与一些社区的工作,周末和节假日会花多一些时间(我今年最活跃的时间其实是春节假期……)。



参与开源项目肯定会占据个人时间的,毕竟有时差就不存在休息时间,就算不专门腾时间出来工作,也会有无穷无尽的消息 24 * 7 小时轰炸收件箱,我会尽量用比较琐碎的时间处理掉一些比较琐碎的任务(比如在手机上阅读 issue,分清哪些是不需要我关注的,那些是需要我关注的),再把需要跟进或者花更多时间工作的东西记下来在下班时间找比较长的空闲时间来处理。另外工作时间等编译或者发布的时候如果手头没有其他事,偶尔也会处理一下消息或者做一下简单的 Review。





张秋怡:在社区的工作其实没有很明确的计划,毕竟 Node.js 项目本身其实也没有明确的 Roadmap,所以基本还是原来做什么现在做什么,就是每周要多参加一次语音会议。



在公司的工作主要是继续维护 alinode 和开发新特性,上游现在已经发布了 Node 8,alinode 也会在 10 月 Node 8 成为 LTS 的时候发布新版本,我们正在将这段时间做的一些功能集成到 alinode 平台上,提供更多为 Node.js 应用监控调优和故障排查的手段。此外还会帮阿里云的其他产品团队做一些与Node.js 开发相关的工作。



另外 Node.js 基金会计划在今年 7 月上海举办的 JSConf China 办一次 Code and Learn 活动(讨论参见这里),到时候有几个国内外的 Node.js CTC 成员和 collaborator 会过来担任导师,现场指导参加的人为 Node.js Core 提交 PR,我也会去这个活动做导师。

时间: 2025-01-02 14:24:44

国内首位!Node.js社区将阿里云工程师张秋怡吸纳为CTC成员的相关文章

阿里云工程师用机器学习破解雾霾成因

免费开通大数据服务:https://data.aliyun.com/m/experience 人们很早就知道硫酸盐是雾霾形成的重要原因.住宅及发电厂的燃煤释放大量二氧化硫,随后转化为硫酸颗粒造成污染.但困扰科学家的是,二氧化硫究竟是如何转化成硫酸的? 阿里云工程师的发现回答了这个问题,同是也从另一个角度佐证了最近中德两国研究人员一份研究成果:大气细颗粒物吸附的水分中二氧化氮与二氧化硫的化学反应是当前雾霾中硫酸盐的主要生成路径.该成果通过分析清华大学楼顶气溶胶成分得出. 文章中,工程师采集了公开的

Hadoop社区支持阿里云OSS 云计算与开源融合的新里程碑

记者从全球著名的开源软件社区Hadoop社区获悉,Hadoop支持阿里云的OSS对象存储文件系统,这是Hadoop第一次支持中国云计算服务商的对象存储文件系统.这意味着全球用户在使用Hadoop这一开源软件时,都可以无缝连接阿里云的OSS对象存储文件系统.这是继Docker支持阿里云存储以后,又一个更重大的里程碑. OSS进入Hadoop社区后,意味着全球所有的Hadoop(HDFS)生态的离线,交互,数据仓库,深度学习等程序在不需要修改代码的情况下,自由读取和写入OSS对象存储,也提升了Had

国内首家 Docker新增支持阿里云OSS

近年来,开源的容器应用引擎Docker在企业IT市场中风生水起,短短两年内,建立在Docker容器软件内的应用被下载5.35亿次.全球约有400万人在使用Docker,约有150,000个在线应用靠Docker容器运行,大型企业正在空前快速地测试或计划采用Docker,胜过其他任何开源的云端产品. 8月12日,Docker1.8和Docker Registry 2.1发布,新版本中加入了Docker Registry对阿里云开放存储服务的正式支持,阿里云成为被Docker官方支持的存储服务的云服

国内第一人:MariaDB基金会将阿里云数据库高级专家彭立勋列为个人成员

上周三,MariaDB在其官网宣布,正式把阿里云数据库工程师彭立勋列为Mariadb基金会个人成员(Staff). 作为Mariadb高级开发人员,彭立勋将主要从事Replication模块的优化:同时,他也致力于MariaDB在中国的普及以及技术社区工作. "跟公司沟通之后,非常爽快的答应让我参与MariaDB基金会,以便更直接地为社区贡献我们的能力." 为什么会被MariaDB基金会邀请担任个人成员,这位阿里云数据库高级专家解读称,从他个人角度来看有两个原因:一是时间和贡献积累的结

柏林纪行(中):Node.js Collaboration Summit

本文首发于 alinode 团队博客 https://alinode.aliyun.com/blog/44 传送门: 柏林纪行(上):整体感受 柏林纪行(中):Node.js Collaboration Summit 柏林纪行(下):JSConf EU Node.js Collaboration Summit 比较沉重的思考写完,下面是比较轻松的部分了--按照时间顺序,先记录一下 Node.js Collaboration Summit 的见闻. Node.js Collaboration Su

【阿里云资讯】Docker首个国内合作商,阿里云何以认定容器技术将成主流?

阿里成Docker首个国内合作商 10月13日,在2016杭州·云栖大会上,全球知名的容器技术公司Docker与阿里云宣布达成战略合作,双方将在容器服务领域进行紧密合作,阿里云称其将为客户提供更加先进的云上应用管理服务.双方称在开源容器技术以及其发展方向共同努力,为客户提供本地化Docker的企业级支持和咨询服务. Docker自问世三年来,社区不断壮大,项目升温之迅猛在开源社区中并不多见,并受到IT业内的广泛关注.不过,Docker在国内真正的大规模应用仍然不多,目前国内Docker的使用状况

Node.js 是如何创建开源社区模式的

创建一门新的编程语言或者是一个平台很少时候是相安无事的,多数时候都是在挑战各式各样的困难.这里要讲述的就是一个典型的例子,即围绕 Node.js 平台的社区建设一路走过来的经验.Node.js 是可以让人们使用 JavaScript 语言来创建后端服务的平台,而且其本身实现了很多"模块"来掌管核心的功能.Node.js 的模块使用 API 的设计从而来降低撰写服务端应用的复杂性,npm 是 Node.js 的软件包生态系统,是目前世界上最大的开源类库生态系统. 目前有50亿的已连接设备

穆客带你快速定位Node.js内存泄露

在7月7日的云栖TechDay活动上,来自阿里云的穆客给大家分享了<如何快速定位Node.js内存泄露>话题.此次分享主要包括Node.js和APM的简单介绍.Node.js内存管理.Node.js内存泄露及其排查过程四个方面. 下面是现场分享观点整理. 大家好,我是来自阿里云的穆客,今天分享的是关于Node.js方面的故障排查.内存泄露的话题. Node.js和APM 很多人应该都知道Node.js,它是一个运行于服务端的基于Chrome V8引擎的 JavaScript 运行环境,Node

94期:阿里云宣布开放开源AliSQL数据库,性能可提升70%

本期头条   蚂蚁金服X阿里云在线金融技术峰会:绝对干货,首次公开 蚂蚁金服X阿里云在线金融技术峰会将于8月30日-31日在线举办.8位蚂蚁金服和阿里云技术大V,将从蚂蚁无线技术.大规模机器学习.金融领域大数据创新.云数据库OceanBase.蚂蚁开放平台等维度,分享蚂蚁从FinTech到FinLife的技术探索思考,展现技术在互联网及金融领域的创新实践应用.峰会议题首次公开,绝对干货!马上报名. • 阿里云宣布开放开源AliSQL数据库:性能可提升70% • 阿里巴巴2017财年第一季度财报: