G6 是 蚂蚁金服-AntV 旗下的针对关系数据的可视化引擎。从 2016 年 12 月,G6 立项至今,已通过去了 1 年半的时间。在过去的时光里,G6 直接或间接的支持了阿里经济体近一百个业务系统。期间得到过赞誉,也有吐槽,取得必定成就,也暴露过很多问题。半年前,咱们结合真实业务需求和业内成熟框架的特色,以及本身心里的丁点不安分创新,开启了 G6 2.0 的开发工做,通过精心设计,以及与诸多业务方数月共同打磨 ——html
今天,咱们怀着诚心、真心、谦卑之心,以及「 **让人们在数据世界里得到视觉能力 **」的梦想,为你们奉上 G6 2.0。git
因为这个问题被不少人问到过,因此在正式介绍 G6 2.0 的新架构,新特性以前,咱们以为仍是有必要先介绍一下 G6 这个名字的由来。程序员
配图来源:https://www.c82.net/blog/?id=71github
自 G6 诞生以来,公司内部由 G6 承接的业务能够分为两大类,一者是 **图分析 类,两者是 图编辑 类。二者虽然说都是关系型数据,但二者的侧重点各不相同,前者更注重绘制的性能、布局的质量,数据钻取等分析体验。后者更注重命令操做、数据读存等人机交互的编辑体验。因为以前人力上和认识上的局限,**1.0 中咱们强行把两个场景所有揉在 G6 这一个库里,随着业务的发展,G6 自身变得愈来愈臃肿,愈来愈矛盾,发展变得举步维艰。团队同窗通过深刻讨论和思考,决定将 G6 一分为二,由此,G6 开始了工程上的裂变:算法
干活程序员:这绝对是一个蛮大的架构变化,甚至从工程上谈得上伤筋动骨,陷入深坑,有条件要上,没有条件创造条件也要上 ⊙﹏⊙api
2.0 中咱们除了原有的两个基本图项(Item),节点(Node),边(Edge),还引入了另外两个基本元素:组(Group),导引(Guide)。至此,咱们能够基于 G6 在思惟彻底不饶的状况下去画任何你想画的图。(意味着之后你能够不再用偷换概念的去用节点模拟一个组,模拟一个背景,或其它什么东西。)markdown
G6 1.0 中节点和边位于两个图层,这个时候意味着,你只能让全部边都在节点上方或者都在下方。2.0 中咱们将节点和边放在了同一个图层,这意味这你能够任意控制不一样边和节点间的层叠关系。网络
随着 2.0 架构的升级,G6 沉为了底层的关系图可视化引擎,其自己不提供(不多提供)上层建筑(节点类型、边类型、基础交互、布局算法)的具体实现,只提供一套高可扩展的机制。得益这次的减负,G6 优化了大量接口设计,若是用过 1.0,相信你们能明显感觉到接口更精简,更自洽,概念更清晰。详见:连接 。架构
为了更好的沉淀一些中等程度的、具体场景相关的工做,以及为了和社区更好的融合造成协力,G6 2.0 中咱们开放了插件的扩展。详见:连接 。框架
配图来源:https://www.google.com.hk/search
在决定了 G6 将来上面会长 G6-Analyser 和 G6-Editor 两个独立项目后,咱们深入的明白,光靠工程是作很差上面两件事情的,咱们须要更多与其它专业领域深度融合。
此次,咱们很高兴的告诉你们,今天除了开源 G6 ,还会开放取得了阶段性成果的 G6-Editor ! 详见:连接** 。**
数据可视化可能一开始就跟美是分不开,并且咱们又在 UED 部门,因此咱们首先会想到和专业的设计同窗深度融合。本次 G6-Editor 做为一个相对上层的中间件,其对外输出的一半是工程,另外一半是设计。你们也许很难想象,为何设计占了如此份量大,看完这篇 G6-Editor 交互设计沉思录 ,你们应能窥得一斑。
为了不 G6-Analyser 和 G6-Editor 成为工程师闭门造车的产物。在打造这两个技术产品时,咱们会和内部大量的商业产品深刻合做,对各个交互细节反复推敲。最终将通过成熟的思考的结论内化到 G6 技术栈。
产品的深度合做,使得咱们更有可能打造精品,并为将来打造开箱即用 图分析 与 图编辑 中间件打下坚实基础。
几经努力 G6 终于也走上了 **开源 之路,心中小辛酸根本难掩心里深处的喜悦。但愿开源以后能更好的回馈社区,更好的从社区中汲取营养,但愿你们在使用过程当中多看文档,善研代码,勤提PR,互帮互助,提有深度的问题,有建设性的建议。**期待与你们共同努力,共同成长,共同进步~!
github:github.com/antvis/g6
夹带几个私货:
—— AntV / G6