绝密文档公开!首次揭秘数栈导航设计思路

1、写在前面git

早在2017年,数栈当时没有这么多子模块,只有【离线开发+实时开发】2个部分,因此在导航设计上不存在问题,仅仅按照数据开发的通用设计逻辑便可。在2018年,增长了数据质量、数据API等几个模块,涵盖多个模块,总体的导航规划就变得很重要,搞得好的话,增长新的模块,能够继承现有的设计,搞很差,后续的改动就会比较大,甚至可能推翻重来,因此导航的重要性就在这里。github

2、设计思考数据库

既然包含了多个模块,有几个问题是须要重点考虑的:工具

一、向后兼容性问题,将来增长新的模块,对现有的导航方式必须改动很小,最好是不要改代码,而是改数据库或者配置的方式。布局

二、共性模块的抽取,每一个模块大概有哪些功能,哪些模块是共性或十分相似的,应该抽取为统一的页面进行管理。学习

三、共性部分在聚合在一块儿的同时,也要有良好的产品体验,不能由于解耦形成体验不好。优化

四、结合商业模式也要考虑解耦性,将来产品的售卖模式是单独售卖,例如数据API能够不依赖其余模块单独输出。阿里云

3、问题解决思路spa

对于数栈产品经理来讲,这是一个以前历来没遇到过的问题,那要怎么解决呢?这里提供一种思路:设计

本身没遇到过的问题,考虑一下别人有没有遇到过,若是有的话,那就去学习,若是没有,说明这个问题自己可能有问题
——简单地说,就是“借鉴”

整理了上述问题以后,首先不是思考如何画原型,而是去找哪里借鉴这个设计。

如何去找借鉴的地方呢?当时主要考虑了如下3个因素:

一、友商的产品要比咱们多,最好能多不少,并且必须集成在1个导航体系内。

二、友商不能只有SaaS服务,由于SaaS服务能够作很高程度的耦合,但咱们还要考虑各类产品独立部署的场景,要可拆分、可解耦。

三、最好是2B类产品,2C类产品这种场景的好像也不太多。

按上面的思路,能肯定几类友商范围:

一、公有云:公有云通常有上百个产品,遇到的问题比咱们更是复杂,既然参考了更复杂的案例,产品数量少就是小case,例如阿云、亚逊as、微azre及G*gle。

二、国内的企业服务厂商,华、亚,遇到的问题与咱们是相似的,通常是输出有限的几个模块,面向专门的一家客户服务,也能够参考,例如:华*,国外的这方面友商不太了解。

4、参考产品的设计特色

一、友商一

登陆后直接进入门户,平铺各类产品的入口连接,便于直接分流,分流能够说是此页面的惟一目的

顶部导航可根据需求定制,将经常使用产品「挂」上去

进入某个产品后,经过面包屑的形式提供多层导航

设计的优缺点

优势

  • 产品线特别多,因此容纳性很强
  • 导航清晰、简单、对公有云来讲,在没有订购任何产品的状况下,会进入产品介绍页面,体验比较好

缺点:

  • 顶部菜单没有充分利用,但对于深度用户能够自定义顶部导航,弥补了这个缺点

二、友商二

首页以dashboard的形式铺开,便于用户观察核心指标,但只能依靠左侧的导航来寻找产品。

设计优缺点

优势

  • 左侧导航虽然是2级,可是融合性很好
  • 首页进入后有核心报表,虽然也是分流,但体验较好,将核心监控指标直接露出

缺点

  • 感受顶部菜单没有充分利用,左侧菜单收缩的位置太靠下了,一大片空白下面可能还有个按钮

三、友商三

友商某产品截图,利用顶部导航拆分各个模块,同时借鉴了G**gle Dashboard的形式,将关键指标体如今首页。

设计优缺点

优势

  • 首页进入后有核心报表,虽然也是分流,但体验较好,将核心监控指标直接露出

缺点:

  • UI不太美观
  • 报表固定,当增长、减小时,报表部分要从新处理布局、从新开发

5、数栈的导航设计

参考了以上几个产品以后,数栈在设计上要注意如下几个问题:

一、可能最多有7—8个产品,但不会有公有云那么多。

二、数据质量、数据API、智能标签、数据地图等模块,会逐步演变的比较复杂,应充分利用顶部菜单,若是后续须要扩展功能,能够设计左侧菜单,便于扩展。

三、首页无需强分流,数栈几个产品的相关度很高,首页能够借鉴Google的dashboard模式。

四、导航上,充分利用顶部导航,为页面下面留出空间。

五、公有云大部分产品不使用顶部导航,猜想多是由于二级菜单过多,没法统一(阿里云的dataworks使用顶部导航,也是因为其功能能够划分,且只用左侧导航会出现导航过多、没法与数据开发集成等问题;AWS的Cloud9也是使用了顶部导航)。

六、用户独立部署一个产品或多个产品时,导航的体验一致(包括从一个产品升级为多个产品)。

七、部署单一组件和多组件的区别就在于顶部上多了一个“xx产品”的icon,其余导航菜单不动,这样比较简洁,且体验一致。

6、数栈的设计方案

设计方案1

  • 若是只部署一个产品,则左上角的产品矩阵icon不该该再显示了,子产品icon须要向左移动
  • 若是由一个产品升级为多个产品,则左上角的产品矩阵icon须要显示出来,且子产品icon向右移动

设计方案2

  • 一方面解决了单个部署和多个部署的体验一致的问题,部署多个产品和单个产品的区别在于顶部多了一个icon,且给人总体体验一致的感受
  • 另外一个好处是,核心导航比较清晰,低频使用的功能放在不重要的位置

7、总结分析

以上内容就是数栈导航的一些设计过程和思路,最终选择了第二种设计方案。固然,这种方案也有一些问题,例如首页没有体现Dashboard等,有些问题已经有了解决思路,会在将来版本中逐步迭代优化掉。


本文首发于:数栈研习社

数栈是云原生—站式数据中台PaaS,咱们在github上有一个有趣的开源项目:FlinkX    DTStack/flinkx​github.com

FlinkX是一个基于Flink的批流统一的数据同步工具,既能够采集静态的数据,好比MySQL,HDFS等,也能够采集实时变化的数据,好比MySQL binlog,Kafka等,是全域、异构、批流一体的数据同步引擎,你们若是有兴趣,欢迎来github社区找咱们玩~