速来报名!AICon北京站鸿蒙专场~ 了解详情
写点什么

使用 Apache ECharts 呈现社区活动的渲染图

  • 2021-08-25
  • 本文字数:2286 字

    阅读完需:约 8 分钟

使用Apache ECharts呈现社区活动的渲染图

整理 | 王强


ApacheCon Asia 2021大会的“数据可视化论坛”上,Apache APISIX Committer 孙毅发表了题为“使用 Echarts 呈现社区活跃度”的演讲。本文是这次演讲的内容总结。

 


大家好,我是孙毅,是 Apache APISIX 的 Committer。今天由我来给大家分享使用Apache ECharts来呈现社区活跃度这个主题。

项目介绍


这个项目主要是由我和后端的吴舒旸同学两个人完成的。上面是仓库地址[1]和我们的 ID,大家有 bug 或者 feature 都可以去提交。

项目初衷


我们为什么要做一个这样的小工具呢?我们在日常开发中会经常遇到选型的问题,怎么来判断开源社区是否活跃稳定,是否能可持续发展?如果单从 Star 数或者是 Fork 数这些维度来判断,对我们来说是不够的。

 

我们的思考是:社区的活跃度也就是社区开发者的活跃度,我们可以收集一些开发者的数据,并做成可视化的图表来判断这个社区是否是健康的、活跃的。于是我们就准备做一个这样的工具[2]来供大家使用。

为何选择 ECharts 来渲染图表


在我们决定要做这个事之后,我们开始做了一些技术选型,最后我们选择了 ECharts 来渲染我们的图表,原因有如下几点:

 

  1. 它是 Apache 软件协议,是一个比较友好流行的开源协议。

  2. ECharts 的上手成本比较低,上手比较快。我们调研的时候发现在它的官网里面有大量图表示例,可以满足我们当前的需求。

  3. 它的文档示例非常丰富。这会让我们后面避开很多坑,在需要支持的时候我们就可以去翻文档来解决我们的问题。

  4. 它同时也有非常丰富的 API。我们目前还没有遇到比较高阶的特性需求,但后期如果我们会有一些比较高阶的玩儿法,那么 ECharts 的丰富 API 相信可以去完成我们的这些需求。

项目功能


下面介绍一下这款图表工具的一些功能。



我们这个工具目前有两个图表,第一个图表就是贡献者增长曲线,是由每个贡献者的首次提交的日期整理而成。图表上可以看到横坐标代表时间,纵坐标代表贡献者数量,从左到右代表这个项目从立项到现在的贡献者总人数的变化过程。



第二个功能是我们的贡献者增长曲线具有合并查看模式。

 

以 apisix 为例,我们会把和 apisix 所有相关的仓库数据聚合在一起来展示。我们可以看到左侧是我们的普通模式,就是仓库的贡献者的变化;右面的是我们的合并模式,会把这些仓库的所有贡献者的数据聚合一起,有更全面的统计。目前我们支持合并模式的仓库有 apisix、skywalking、openwhisk,还有 dubbo。如果大家也想把自己的仓库做成这种合并模式,可以提 feature,或者修改 yaml 文件,就可以支持查看模式了。



另外一个功能是贡献者曲线的多仓库对比模式。多仓库对比模式可以让某一领域的使用者分析某一领域的软件近期的变化。我们可以从这个图表中看到 apisix 用了两年的时间就快达到了 kong 6 年的贡献者人数的总和。

 

另外一个是分享功能。当使用者觉得这些图表对他们来说有用的时候,他们想的第一件事是去分享给其他人。我们也对分享这一块比较重视,做了如下几个分享:

 

  1. 网页分享。你可以把分享的链接复制给你的朋友,直接访问链接就会看到你当前的图表。

  2. 图片分享。这个和网页有点类似,只不过它会直接给你返回一张图片。

  3. 社交媒体分享。我们先做了 Twitter,点击 Twitter 之后就会跳转到 Twitter 平台,然后自动编辑你的 Post。

  4. 值得提的一点是我们同样也支持 Markdown 分享。你可以直接把这段代码复制到你的 Markdown 文件中,就可以把这个图表展示在你的 Markdown 里边。需要注意的是我们的图片是由后端动态生成的,也就是说一旦你的贡献者数量,或者贡献者活跃度有更改的话,那么这个图片是会动态刷新的。你只需要首次给它提交到你的仓库里面,后期的数据更新都是由这个服务自己动态完成的。

 

我们做的另外一个图表是月贡献者增长曲线。这个意思是说每一个仓库在每个月具体有多少个活跃的贡献者。这个图表可以让我们分析这个仓库在短期内的活跃度。



我们可以看到 apisix 的活跃度现在是稳定在 kong 的两倍左右。

项目反响


我们把这个工具做完,并且觉得它是稳定可用的时候,我们秉着开源精神将这个工具提交给了一些开源项目。目前有如下这些仓库在用,并且得到比较好的一些反馈。



我们从项目想法到开发计划,再到落地成品到用户使用,这个过程像是一种快乐的传递。尤其是当看到用户在使用我们的小工具,这个工具真真切切帮助了使用者从更多纬度去分析社区的活跃度,这一点是令我们非常开心的。

项目未来规划


目前这个工具已经是稳定可用了,但后期一定会有其他的一些需求,需要去开发。我们后期会更多倾听社区的声音,将社区里面合理的需求转化为产品。我相信有社区力量的注入,我们的项目将会更加完善、更加好用、好看。

项目总结


在整个项目的开发过程中,我认识到一个人的能力终归是有限的,而社区的能力是无限的,因为社区会有源源不断的有能力的人来注入。

 

像我们在开发合并模式的时候,这个需求是由 skyWalking 社区提出的。我们在向 skywalking 提交我们的贡献者视图的时候,社区里面有人就提出可不可以增加合并模式来完成多个仓库的聚合展示。经过我们的讨论分析后,我们觉得这个功能不仅仅对 skywalking 是有用的,其他小伙伴也会有类似的需求,我们就把这个事情落地了。如果是单靠我和后端同学去想到底需要哪些功能,可能就是比较吃力。从这一方面上来说,社区的能力以及社区的需求是无限的。

 

我们的图表从表观上看去只是一条冷冰冰的数据,但是我们每条可视化数据背后都是一位位优秀的工程师用汗水浇铸而成的。这就让我们的工作变得更加有意义,因为每一个点都是工程师辛辛苦苦参与到这个开源项目当中的成果,这让我们的事情变得更有意义。

 

如上就是我的分享内容,谢谢大家。

 

[1] 仓库地址:https://github.com/api7/contributor-graph

[2] 工具链接:https://www.apiseven.com/en/contributor-graph

2021-08-25 12:404623

评论

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

年轻就要醒着拼,年轻就要勇于尝试

Zadig

DevOps 微服务治理 自动化运维 企业案例

高校如何基于云原生构建面向未来的智慧校园?全栈云原生架构VS传统IT架构

York

云原生 数字化转型 智慧校园 教育科技

揭秘!付费会员制下的那些小心机!

CRMEB

web前端培训 | 34 道 Vue 高频面试题

@零度

Vue 前端开发

技术分享| 融合调度中的广播功能设计

anyRTC开发者

音视频 调度 实时消息 快对讲 广播

java就业培训 | 怎么实现 SpringBoot 并行任务

@零度

JAVA开发 springboot

iMile 利用 Zadig 多云环境周部署千次,跨云跨地域持续交付全球业务

Zadig

DevOps 微服务架构 CI/CD 持续交付 国际化

InfoQ百位优质创作者签约计划第三季,终于等到了!!!

InfoQ写作社区官方

热门活动 签约计划第三季

云创平台+播放器SDK,腾讯云音视频新工具助力视频生产、终端能力全面升级

科技热闻

3个最佳实践助力企业改善供应链安全

SEAL安全

安全 软件供应链 第三方风险

iMile 利用 Zadig 多云环境周部署千次,跨云跨地域持续交付全球业务

Zadig

DevOps 持续交付 跨境电商 自动化运维 Zadig

钛动科技:我们的 Zadig 落地之路

Zadig

DevOps 持续交付 企业出海 研发效率

揭秘百度智能测试在测试自动执行领域实践

百度Geek说

测试

架构实战营第五模块课后作业

Geek_53787a

架构实战营

自主可控再下一城!首套国产ARTIQ架构量子计算测控系统发布

启科量子开发者官方号

算力 量子计算机 量子计算 离子阱 启科量子

图像边缘检测的新方向——量子算法

启科量子开发者官方号

tensorflow 边缘计算 图像处理 量子计算 量子算法

亲测!Centos7部署PHP + Swoole

迷彩

Apache Linux 微服务 swoole 6月月更

基于字节码的统一异常上报实践

转转技术团队

异常机制 Java’

面试突击61:说一下MySQL事务隔离级别?

王磊

Java java面试

超级详细的 Maven 教程(基础+高级)

Ayue、

maven

新朝旧将 vite和webpack煮酒论英雄

转转技术团队

vite webpack

易快报:我们用 Zadig 实现万次构建部署,聪明运维,释放开发生产力

Zadig

DevOps 微服务架构 CI/CD 容器化 Zadig

TTChat x Zadig 开源共创 Helm 接入场景,环境治理搞得定!

Zadig

DevOps 微服务 音视频 测试环境治理

什么是外链和内链?

源字节1号

前端开发 后端开发 网站开发

ONES 创始人王颖奇对话《财富》(中文版):中国有没有优秀的软件?

万事ONES

龙书虎书鲸书啃不动?试试豆瓣评分9.5的猴书

图灵教育

编译原理 go语言

大数据培训 | Flink SQL窗口表值函数聚合实现原理

@零度

flink 大数据开发

Vue3中如何使用异步请求?

Python研究所

6月月更

智能指标驱动的管理和决策平台 Kyligence Zen 全新上线,限量内测中

Kyligence

助力极致体验,火山引擎边缘计算最佳实践

火山引擎边缘云

云计算 边缘计算 低时延 边缘云原生 边缘网络

妙!妙盈科技全面实施 Zadig 助力容器化建设,全面拥抱 Kubernetes 和云原生

Zadig

DevOps CI/CD 容器化 自动化运维 Zadig

使用Apache ECharts呈现社区活动的渲染图_文化 & 方法_孙毅_InfoQ精选文章