<返回更多

页面可配置设计构想

2020-05-29    
加入收藏

背景与现状

(一)背景

“不要写死”——程序开发过程中经常提到的一个问题。我们运用各种设计模式进行抽象、封装,就是为了让我们的代码看起来不是那么“死”,从而能够灵活的适应各种“变化”。

如今互联网的变化,可以说世界的变化超出每一个人的预测,那么对于快速变化的市场与用户需求,尤其我们客户多样,存在或多或少的个性化定制需求,我们需要更加快速、高效地做出响应——页面可配置的概念应运而生,其包括UI(界面与交互)、业务、数据、配置等诸多方面。

页面的自定义比作盖楼,添加一个楼层,每层可以自定义内容,譬如商品、优惠券、商品排名等。在淘宝旗下的店铺装修平台——“淘宝旺铺“中,淘宝店家可以选择基础模块的内容,编辑首页或新建页面,动态配置页面。

页面可配置设计构想

淘宝旺铺装修App


页面可配置设计构想

淘宝旺铺装修PC

这种页面配置有以下特点:

(二)现状

目前系统各业务模块业务耦合度较高,依赖较强,没有统一的配置管理方案与渲染实现,重复造轮子。

(三)设计思考

所以,在实现页面可配置的前提下还有两个目标:对业务无侵入、高性能。

核心分析

(一)核心问题

可配置页面,要解决三个核心问题:

(二)页面分析

页面可配置设计构想

头条号创作者首页

上图是我截取的头条号创作者首页的图片,我把它划分成了不同的区块,并且标上了编号。整个页面,我们将它称为画布(Canvas,或者叫做页面),里面一个个带有编号的红框,称之为容器(Container)。实际上,画布(页面)也可以理解为是一个足够大的容器,也是顶级容器,便于理解,暂时称它为根容器(Root Container)。

现在我们来具体分析一下这个页面:

综上分析,我们可以得出五个概念:

(三)页面布局

有了以上概念定义,我们再回过头看这个页面。从布局层面来看,它就是一个网格布局,以从上到下,从左到右的顺序逐个分布容器与组件,但是就这个页面来说,它还不是简单的横向纵向网格

页面可配置设计构想

网格化布局

我们将前面头条号创作者首页的内容去掉,只留下布局,那么就是上图中这个样子,为了简化逻辑,我们把容器都设计成流式布局,所有组件一个个自左往右,自上而下堆叠排列。

(四)页面内容——组件

每一个组件都有自己独立的逻辑和UI,组件之间完全解耦,这样就可以很方便地通过排列模块来完成不同的页面定制化需求,使一个页面可以展示不同的内容。原则上,组件并不依赖某一具体页面,组件也可以在不同的页面之间进行复用。

(五)页面交互

问题与思考

(一)布局复杂

页面布局不一定是网格化有序排列,布局样式多元,那么容器层面怎么支持与兼容是需要面临的问题

(二)组件复杂

业务组件复杂,组件入参形式多样,接入方式如何统一

(三)交互复杂

弹窗、跳转、校验、提示,各种前端交互纷杂多样

(四)业务需求迭代

(五)其他思考

规划与步骤

声明:本站部分内容来自互联网,如有版权侵犯或其他问题请与我们联系,我们将立即删除或处理。
▍相关推荐
更多资讯 >>>