百度360必应搜狗淘宝本站头条
当前位置:网站首页 > IT知识 > 正文

百度乔刚:前端可视化难点分析及探索实践

liuian 2025-01-31 14:02 16 浏览

CSDN年度技术盛宴 “SDCC 2015中国软件开发者嘉年华”将于2015年11月19-21日在北京召开。CSDN软件研发频道将采访一些与会讲师,谈谈他们将在会上分享的内容。

本期我们采访的讲师是百度EFE团队资深工程师、百度ECharts产品工程师乔刚。在他看来,在专业性较强的数据可视化领域,前端开发者应掌握一定数据可视化知识,才能合理运用数据进行标准的可视化展现,否则会比较容易陷入一些常识性的问题中去。同时,为了达到性能的最优,开发者也应考虑更细致的渲染方式及更优化的代码逻辑,这里面的大坑小坑还是不少的。

CSDN:首先,请介绍一下自己和所在的ECharts研发团队。

乔刚:我是2010年加入百度的,目前在多模交互搜索部,EFE(Excellent FrontEnd)团队,参与ECharts 和图说的开发工作。

我所在的ECharts 团队是一个专注于Web前端数据可视化的团队,主要的产品有 ECharts和图说。前者是一套开源的基于 Canvas的纯Javascript图表库,提供了多种可交互的图表,后者是则一款通过图形化操作,来制作ECharts图表的 Web端工具。

CSDN:大数据时代,前端数据展示、交互越来越重要。对于前端开发人员来说,实现这两点面临的技术难题是什么?

乔刚:我觉得数据可视化的专业性比较强,对于专注于前端的开发人员来说,要进行专业的可视化展现,需要掌握一些专业的数据可视化知识,才能合理的运用数据进行标准的可视化展现,否则会比较容易陷入一些常识性的问题中去。另外如果使用的是Canvas进行图表绘制过程的话,很多元素的定位及尺寸需要通过精确的计算来达到理想的效果,而在大数据量的情况下,为了达到性能的最优,也要考虑更细致的渲染方式及更优化的代码逻辑,这里面的大坑小坑还是不少的。

CSDN:ECharts都使用了哪些核心前端技术? 是如何出色地帮助前端开发人员实现各类数据示图的展示与交互的?

乔刚:ECharts 是基于 ZRender 进行绘制的,而 ZRender 也是我们团队开发的一套的Canvas 图形库,兼容IE8和移动端,并且提供了类 DOM 的事件模型,在ZRender基础上我们能够更轻松的绘制可视化的效果以及实现各种交互和动画,除了Canvas在ECharts-X中我们也尝试了使用WebGL去绘制三维的图形。

CSDN:短短3年时间,ECharts已发展成国内可视化领域娇娇者,相比同类数据可视化产品,如Highcharts,ECharts 的优势体现在哪些方面?

乔刚:3年时间里,经过了两次大的版本升级,ECharts 不断丰富可视化图表的种类,除了一些常见的图表外,还增加了诸如力导向图、和弦图、事件河流图、树图、热力图、字符云等时下比较常用的图表,来完善和满足可视化的需求。另外在图表的交互方面,提供了诸如拖拽重计算、动态类型切换、值域漫游、多图联动等交互,不仅将图表进行了展示,更可以让使用者参与其中,进行多样的数据交互。再有就是 ECharts 使用的是 BSD 的开源协议,是完全免费的,可以用于任何形式的商业开发,在使用时不用考虑费用的问题。

CSDN:自开源以来,开源社区对ECharts的发展做了哪些贡献?百度在其中扮演着怎样的角色?

乔刚:虽然目前ECharts的开发主要还是我们团队的同事在做,但是在GitHub 社区上还是收到了2000多条的Issue反馈,这些反馈包括提交Bug 的,询问API 如何使用的,为我们提建议的,讨论细节实现的。这些反馈在帮助我们改进 ECharts 上提供了极大的帮助,我们通过反馈也发现了很多之前没有发现的问题。所以 ECharts 在开源社区也是受益者,也要感谢关注 ECharts的朋友们。

CSDN:ECharts 近期的研发计划是怎样的?

乔刚:近期可能会有人会发现 ECharts 项目在 GitHub 上有很多 Issue 没有关闭,也发现 ECharts2.0的代码最近一段时间没有更新了,甚至有朋友发来邮件询问 ECharts 是不是停止更新了,在这里也跟大家解释一下,其实是因为目前团队的同学们正在专注开发3.0,因此对2.0的问题暂时抽不出时间处理。

其实从今年7月份开始 ECharts就开始了 3.0 的规划和开发,因为 2.0的模块抽象程度不够导致后面扩展新的图表和组件很麻烦,很多已有的代码都不能复用,再加上组件之间有或多或少的耦合导致 2.0 的文件体积庞大,打包的最小版本就已经接近400k,对移动端很不友好,所以团队在3.0中下决心重写了所有代码。整理了整个程序的流程,抽象出了各基础的模块,组件与组件之间也做了解耦,因此在 3.0 中能做到更小的体积,更多的功能,更好的扩展性,更灵活的打包。

除了3.0之外我们还有一个重要的研发方向是我目前在做的新版图说,这也是老版图说被吐槽众多之后痛定思痛我们决定推倒重来,希望能够做出一个更好的针对非开发人员使用的数据可视化工具。

网友说的API工具(如,提供一些常用平台数据的API接口)我们也有考虑过,但是可能因为人力的关系最近做不起来。

CSDN:SDCC 2015上您分享的主题是什么?选择该主题的原因是什么?

乔刚:题目是《ECharts Next —— 延续前端的可视化开源实践》。主要来介绍下ECharts团队在过去的半年里,针对可视化领域的需求和痛点,又有哪些尝试和改进,希望可以给听众带来有价值的分享。

CSDN:您最期待在本次SDCC 2015上听到哪些内容?

乔刚:除了数据可视化领域方面的内容外,还比较期待关于前端和信息安全相关的内容。

值得一提的是,由CSDN举办的 SDCC 2015中国软件开发者嘉年华将于11月19-21日在北京举行,本次大会涵盖:新型数据库、编程语言、工具与平台、产品与设计、前端开发、算法、微信开发、架构实践、安全等九大分 论坛,届时国外知名讲师将分享所在领域的最佳实践。

相关推荐

Optional是个好东西,如果用错了就太可惜了

原文出处:https://xie.infoq.cn/article/e3d1f0f4f095397c44812a5be我们都知道,在Java8新增了一个类-Optional,主要是用来解决程...

IDEA建议:不要在字段上使用@Autowire了!

在使用IDEA写Spring相关的项目的时候,在字段上使用@Autowired注解时,总是会有一个波浪线提示:Fieldinjectionisnotrecommended.纳尼?我天天用,咋...

Spring源码|Spring实例Bean的方法

Spring实例Bean的方法,在AbstractAutowireCapableBeanFactory中的protectedBeanWrappercreateBeanInstance(String...

Spring技巧:深入研究Java 14和SpringBoot

在本期文章中,我们将介绍Java14中的新特性及其在构建基于SpringBoot的应用程序中的应用。开始,我们需要使用Java的最新版本,也是最棒的版本,Java14,它现在还没有发布。预计将于2...

Java开发200+个学习知识路线-史上最全(框架篇)

1.Spring框架深入SpringIOC容器:BeanFactory与ApplicationContextBean生命周期:实例化、属性填充、初始化、销毁依赖注入方式:构造器注入、Setter注...

年末将至,Java 开发者必须了解的 15 个Java 顶级开源项目

专注于Java领域优质技术,欢迎关注作者:SnailClimbStar的数量统计于2019-12-29。1.JavaGuideGuide哥大三开始维护的,目前算是纯Java类型项目中Sta...

字节跨平台框架 Lynx 开源:一个 Web 开发者的原生体验

最近各大厂都在开源自己的跨平台框架,前脚腾讯刚宣布计划四月开源基于Kotlin的跨平台框架「Kuikly」,后脚字节跳动旧开源了他们的跨平台框架「Lynx」,如果说Kuikly是一个面向...

我要狠狠的反驳“公司禁止使用Lombok”的观点

经常在其它各个地方在说公司禁止使用Lombok,我一直不明白为什么不让用,今天看到一篇文章列举了一下“缺点”,这里我只想狠狠地反驳,看到列举的理由我竟无言以对。原文如下:下面,结合我自己使用Lomb...

SpringBoot Lombok使用详解:从入门到精通(注解最全)

一、Lombok概述与基础使用1.1Lombok是什么Lombok是一个Java库,它通过注解的方式自动生成Java代码(如getter、setter、toString等),从而减少样板代码的编写,...

Java 8之后的那些新特性(六):记录类 Record Class

Java是一门面向对象的语言,而对于面向对象的语言中,一个众所周知的概念就是,对象是包含属性与行为的。比如HR系统中都会有雇员的概念,那雇员会有姓名,ID身份,性别等,这些我们称之为属性;而雇员同时肯...

为什么大厂要求安卓开发者掌握Kotlin和Jetpack?优雅草卓伊凡

为什么大厂要求安卓开发者掌握Kotlin和Jetpack?深度解析现代Android开发生态优雅草卓伊凡一、Kotlin:Android开发的现代语言选择1.1Kotlin是什么?Kotlin是由...

Kotlin这5招太绝了!码农秒变优雅艺术家!

Kotlin因其简洁性、空安全性和与Java的无缝互操作性而备受喜爱。虽然许多开发者熟悉协程、扩展函数和数据类等特性,但还有一些鲜为人知的特性可以让你的代码从仅仅能用变得真正优雅且异常简洁。让我们来看...

自行部署一款免费高颜值的IT资产管理系统-咖啡壶chemex

在运维时,ICT资产太多怎么办,还是用excel表格来管理?效率太低,也不好多人使用。在几个IT资产管理系统中选择比较中,最终在Snipe-IT和chemex间选择了chemex咖啡壶。Snip...

PHP对接百度语音识别技术(php对接百度语音识别技术实验报告)

引言在目前的各种应用场景中,语音识别技术已经越来越常用,并且其应用场景正在不断扩大。百度提供的语音识别服务允许用户通过简单的接口调用,将语音内容转换为文本。本文将通过PHP语言集成百度的语音识别服务,...

知识付费系统功能全解析(知识付费项目怎么样)

开发知识付费系统需包含核心功能模块,确保内容变现、用户体验及运营管理需求。以下是完整功能架构:一、用户端功能注册登录:手机号/邮箱注册,第三方登录(微信、QQ)内容浏览:分类展示课程、文章、音频等付费...