echarts关系图层级-六年五万的开源之旅——Apache ECharts开源之路

前言

中国互联网最繁荣的时代,也是Web前端技术飞速发展的时代。 中国的互联网公司正在进行大规模的人才军备竞赛。 充沛的人力和快速发展的业务,让每个公司的未来团队都为业务、技术或团队考虑创造了大量的轮子。

大多数轮子因为商业和组织的激励而逐渐枯萎,极少数产品幸存下来,成为行业中令人敬佩的典范产品。

Apache ECharts 应该被认为是其中之一。 这个数据可视化产品诞生于百度。 距离发布已经过去六年了。 它在Github上拥有超过5万的关注者(star),充分说明这是一个由中国人打造的极具影响力的开源技术产品。

这样的产品背后,是什么样的人在为其买单? 这六年的时间,这些人是如何一步步走到今天的?

本文将根据 QCon 2023 的分享以及各种历史资料,分享 Apache ECharts 近十年来的开源故事。

Apache ECharts 简介

在回顾历史故事之前,我们先简单介绍一下Apache ECharts是什么。

Apache ECharts(以下简称ECharts)是一个基于JavaScript的开源可视化图表库。 它提供了丰富的图表类型和丰富的可配置参数。 这也是ECharts十年前确立的重要产品优势之一。

针对复杂的可视化需求,ECharts还提供了非常强大的自定义扩展能力。 比如上图左上角是一个篮球场的投篮命中率分布图。 这不是一个常规的图表,而是用户基于ECharts提供的扩展能力,可以实现上图中的各种可视化需求。

对于ECharts来说,它希望提供给最终查看数据的用户,不仅仅是一个静态的数据亮点,它还希望帮助用户更好地理解和分析数据,所以ECharts从最初的版本开始就提供了很多交互和解读的能力动态地。 例如上图中,它展示了右侧地图的拖拽选择以及两侧条形图的分析联动。

ECharts诞生之初,就不断有人指出数据可视化是大数据时代的最后一公里,那么大数据如何体现呢? ECharts选择了具备大数据量的渲染性能,从最早的十万级、百万级,到ECharts 5.0的亿级,通过大量的算法优化,采用WebGL加速等意思是帮助开发者开发一些大数据屏幕得心应手。

ECharts在发布4.0版本的同时,还发布了其3D可视化解决方案ECharts GL,提供地理可视化和函数可视化(如上图所示)。 充分展现了团队在可视化领域的技术实力。

在与ECharts团队沟通的过程中,我发现团队对ECharts无障碍的支持是团队非常自豪的一个特性。

ECharts 提供了贴花解决方案,帮助色盲人士区分图表中的不同数据系列。

ECharts完全遵循W3C标准,允许开发者自定义图表中要表达的内容,让残疾人可以通过聆听来理解图表中的内容。 同时,ECharts还提供基于规则的手动图表描述。 比如上图中,对于两边的图表,ECharts会在后面生成一段描述文字。 当残障人士访问此页面时,他们可以看到相关描述。

Apache ECharts 发展历史

Apache ECharts成立于2012年8月,1.0版本将于2013年6月30日发布,明年6月(2023年)将是其10周年纪念日。 1.0版本发布一年后,2014年6月30日,ECharts发布了2.0版本。 从项目立项到2.0发布,可以视为ECharts的初始诞生阶段。

接下来的三年时间,从3.0的alpha到3.0的正式版,再到4.0版本,这是ECharts的第二个发展阶段。 在此期间,百度团队将发布核心版本。

2018年1月,ECharts进入Apache基金会孵化,从而转入社区运营状态。 在这个过程中,ECharts 取得了良好的发展,特别是在 2020 年 6 月,达到了 100 名社区贡献者的成就,进入 Apache 基金会后,社区的力量帮助 ECharts 吸引了众多贡献者。

2021年1月,ECharts顺利从Apache基金会毕业,5.0版本也发布了。

随着版本的不断迭代,Apache ECharts在开发者社区中获得了越来越多的关注,并在Github上获得了超过5万的关注者。

对 2.0 到 5.0 主要版本的痴迷

ECharts团队觉得大版本的发布是一件非常严肃且迫在眉睫的事情,因此也需要一种特殊的仪式性发布方式。 在资源有限的情况下,团队会寻找各种可以使用的资源,或者自掏腰包。 开展大版本发布的公示操作。

对于一个技术团队来说,除了做好各个版本的技术工作外,学习如何运营、如何做好营销运营也是很有趣的。

上图是2.0的官网。 从2.0开始echarts关系图层级,ECharts有了自己的设计师,也因为设计师,ECharts终于有了一个标志——小海豚。

为了营造2.0的宣传氛围,我还制作了一张分节奏的宣传海报。 我先把右边的图放上来,这意味着比ECharts 1.0更好用的图表正式跳出水面了。 小海豚依然埋在地平线下,屏幕上满是参数混合着不同语言的“二”。 然后第二张图放出,ECharts 2.0正式发布,小海豚从海里浮出水面。

2.0发布后,面对越来越复杂的用户需求,技术落地时发现原来的技术框架很难适应新的需求迭代,效率极低。 再加上创始人辞职,所以大家都想通过3.0来证明自己。

由于对3.0的执着,ECharts在3.0正式发布前几个月没有任何版本更新。 为此,经常有用户通过短信或者微博询问ECharts是否脏。

终于发布了3.0,但由于整个结构调整较大,bug太多,前几个版本都被嘘,导致前期口碑和反馈都很差。

幸运的是,通过团队的努力,3.0发布后的4个月内,连续发布了12个版本来修复各种Bug。 用户终于看到了新大版本的优势和变化,重新接受了ECharts。

基于新的架构,3.0的迭代速度越来越快,用户的需求和你的技术观点得到了更好的落地。 经过长时间的积累,4.0水到渠成。

ECharts 团队仍在期待即将发布的版本,4.0 满足了团队的愿望(如上图)。

4.0发布的同时,也是百度开源如火如荼的时候。 团队趁势将ECharts捐赠给Apache,帮助该公司增加在开源领域的影响力,为产品未来的发展开辟一条新的道路。

ECharts捐赠给Apache后,无论是从团队角度还是从公司角度来看,都希望成为百度第一个由Apache正式完成的顶尖项目。

这个过程有很多挑战,最大的挑战来自于适应Apache Way。 首先是效率之战。 大家都习惯在日常办公中使用IM工具,甚至亲自或在集中办公室沟通项目和技术方案。 然而,Apache Way 需要以文本消息的形式进行开放式通信。 一开始大家都觉得效率太低了。

但真正适应和尝试后,团队发现了优势。 通过短信进行交流的时候,大家需要在短信中写得尽可能详细,包括自己的想法、结论、建议等等,同时大家的回复也非常清晰。 当阅读短信时,所有上下文都可以通过短信完整、明确地追溯。 相反,它提高了沟通效率。

在适应了Apache Way之后,更多的贡献者加入了ECharts 5.0的开发,并且已经完全适应了远程协同办公团队,使得5.0不受口罩的影响,并且5.0也以直播的形式完成了线上发布视频会议。

一些与ECharts相关的人

除了产品本身的发展故事,产品背后的人和团队的故事也吸引我们深入了解。

做与爱的创始人

说起ECharts团队,很多人第一个想到的就是它的创始人林峰。 除了ECharts之外,林峰还有一个身份是AntV前负责人。 可以说国内两大可视化产品都与他有着不解之缘。 不得不说,林峰不愧是中国后端数据可视化的领军人物。

据说,林峰在加入百度后端团队之前,对Web前端了解不多。 面试前花了一段时间才开始学习。 正是这个惊喜,改变了中国后端数据可视化的格局。

林峰加入百度的那几年,正值互联网、Web前端领域蓬勃发展,前端技术轮子纷纷造得如火如荼。 很多团队都把自己拥有多少开源产品作为团队影响力的重要参考。 各公司紧急招聘冗余人才,也让各团队在照顾好业务的同时,有充足的资源参与技术产品的开发。

林峰加入的团队经过几年的组织变革,成立了EFE团队。 这个团队也形成了大量具有团队特色的技术开源产品,现在在团队的Github上都可以看到,但是大部分产品已经完成了自己的历史使命,或者部分产品目前在百度内部服务,并且已经没有成为有影响力的社区开源产品。 也就是说,大部分产品在成立之初echarts关系图层级,并没有以成为社区有影响力的开源产品为目标。 他们只是务实地在Github上开源了一个,以满足公司内部业务。 说白了,这种操作方式在近年来各个公司的后端团队中并不少见,不过近年来,随着公司越来越开源控,这种现象在国内已经减少了很多。大公司。 。

ECharts也是在EFE之后成立的。 将于2012年8月成立,2013年6月开源。以后我们会经常在各个技术社区看到林峰推广ECharts的身影。 据不完全统计,2013年至2015年,林峰对外分享了40余次。

经典《Why ECharts》在线幻灯片跟随林峰走遍全国。

我们不知道林峰是如何开始在技术上推广ECharts的,但是回顾林峰的宣传历史,不难发现他并不是简单地将ECharts作为一个技术产品在各个后端团队中推广。 他敏锐地结合大数据时代和数据新闻趋势,将ECharts的产品价值从技术效率提升工具提升为商业价值提升的解决方案。

这是大多数技术人员不具备的愿景和产品能力,但这是可以通过实践学到的。 真正让林峰从众多产品负责人中脱颖而出的关键在于他能够做他所做的事情并热爱他所做的事情。 用现在互联网巨头的行话来说,可以称之为信仰感,或者使命感。

在做后端之前,他没有后端经验,但在做ECharts之前,他成为了团队的技术中流砥柱; 在做ECharts之前,他并没有做数据可视化,但却成为国内两大后端可视化产品的重要角色。

一位与林枫共事多年的人对他做出了这样的评价:

“不高傲不霸道,不骄不躁,始终以空杯和真诚的态度,拼命吸收新领域的知识,但又充满自信和信念,坚信自己所做的事情会给别人带来巨大的价值。”

核心团队低调前行

很多人仍然将ECharts与林峰划等号,但毕竟林峰早在15年前就离开了百度。 此后,百度逐渐完善了一支团队,并持续维护ECharts,但直到2018年,这支团队才使用ECharts 4.0的发布,彻底登场。

为了弥补林峰辞职的影响,EFE组建了一支规模不大、装备精良的精英团队。 其中有毕业于北京航空航天大学数据可视化专业硕士学位、师从陈院士的高年级学生; 有几位架构师经常代表ECharts参加各种技术会议。

这支精英团队从ECharts发布第三年起就成为了产品真正的中坚力量,承载了产品五年。 如今的ECharts,从技术架构、社区建设等关键环节,都是由这个团队负责的。

只是可惜,这支队伍太高调了。 我们只能从祖明在QCon的分享中了解到一点这个团队的内部工作情况。 例如,你们经常一起去工程师家玩,一起工作。 希望以后我们有机会更多地了解这个核心团队的故事。

但我们相信,ECharts 真正的未来仍在社区。 随着Apache的成功孵化和完成,ECharts拥有越来越多的外部贡献者。 近一年来Apache ECharts最活跃的开发者已经是非百度程序了。 各位,虽然ECharts比以前走得慢了,但是细节和社区的力量会让它走得更久。

总结

第一个是从ECharts本身的发展来看。 ECharts的立足点非常直接。 是针对百度自己的产品线业务,服务于业务的。 老板自然会给出资源去做这件事,但是做这件事的人需要有远大的理想,这样才能吸引更多志同道合的人跟你一起做这件事。

第二点不一定适合所有产品,就是要适当的隐藏在秀场内外、公司或组织之下,这样你的项目才能长久生存。 有时候技术产品服务于内部比服务于外部更难,因为在服务外部业务时,可以按照一些标准化的方案来实现,或者即使有不标准化的地方,你也有权利拒绝,尤其是像ECharts这样的项目不需要背诵收入的,如果拒绝就拒绝,不会有影响。 但如果你敢拒绝一个内部产品,那就是文化价值观的问题,这是非常困难的。 所以有时候服务内部比服务外部要困难得多。 然后就是外部背书,其实有时候它比内部背书更有用。 如果你服务好内部的人,你觉得理所当然,但如果你服务好外部的人,别人的一封表扬信,或者别人夸奖你,就会比内部的多得多。 它是有价值的,所以如果你有一些小技术产品,并且想要生活得更好,建议更好地抓住外面的客户。

三是常年发展。 如果你想做一个非常好的甚至商业化的产品,靠个人的力量是无法实现的。 取决于整个组织的改革,或者选择像ECharts这样越来越中立的开源组织,然后从外部找到一些开源的商业模式,或者成为组织的第二条曲线。 比较好的就是百度现在的糖,就是一个很好的例子。 原本只服务内部服务,现在已经成为百度云产品,成为公司第二曲线之一。

另外,在团队建设方面,开源是一件需要耐心的事情,需要招募有常年思维的人。 如何理解常年思维? 他不会因为眼前的一些小恩惠或者坎坷而受到影响。 他是一个心里清楚自己想要什么、想要这个产品什么的人,而且很有自我驱动力,但不会急功近利。

开源核心团队。 对于这些相对较大的架构和产品来说,人月神话也是如此。 核心团队必须足够强大,并且在一定范围内相对极权,而不是民主。 最后,共同的价值观,公开透明的合作决策方式,整个团队要有很好的默契,最好培养良好的个人关系,这样团队才能更加润滑。

最后一点是,从产品方向来说,做自己喜欢的事情非常重要,尤其是开源。 如果你做开源,又不喜欢做这个事情,你就不知道该怎么办了。 那么最好是擅长它。 擅长并不代表现在就擅长,因为做一个开源产品对于整个ECharts团队的成长是非常有价值的。 虽然很多事情你不知道自己是否擅长,但是你必须尝试一下。 你直到后来才知道,所以在这个过程中它可以帮助你找出你还需要做什么的空间。 另外很重要的一点就是要关注用户的反馈,因为开源的自然反馈在问题上要好很多,但是这里给大家提个醒,就是要看一些反馈的来龙去脉,找一些用户去问,你为什么会遇到这个问题? 你在什么样的场景下使用它? 因为有时候他直接反馈给你的东西,虽然问题没有解释清楚,但是信息比较有限。 那么文档和Showcase也很重要。 什么是Showcase,就是我本来想展示的东西没有展示出来。 最后,产品可以有很多功能,但营销卖点要尽可能专注。 有时候你认为的卖点和用户想象的卖点是不一样的,所以一定要区分清楚。 如果你直接说出用户想要什么,会让他感觉很低,所以推广的时候要高一点。