新媒易动态
NEWS CENTER
NEWS CENTER
2021-03-08
那么一个完整的功能配置化包含哪些方面呢?要回答这个问题,需要从一个B端产品最基本的组成部分出发。
大部分的B端产品都可以抽象为以下四个部分组成(有的只有其中几项):
而一个全面系统的功能配置化方案,就是针对这四个部分进行的,当然,这个粒度太粗了,没有办法直接做配置,我们再细化一下。
业务管理的配置化包括:
工作流的配置化包括:
分析图表配置化包括:
基础信息配置化包括:
我们用下图整理一下:
图1 功能配置化的组成
从这张图中大家可以看出,功能配置化是个系统且庞大的工程,涉及到产品的方方面面,想要做好,需要投入巨大工作量,因此关于配置化的思考越早越好,拖得越晚,产品越臃肿复杂,所需付出的成本越高,当产品复杂到一定程度后,最后会发现与其在现有产品的基础上做配置化,还不如重做。
无论做哪方面功能的配置化,都可以总结为以下三大步:
图2 配置化三大步
抽象是指提炼出你要配置功能包含哪些对象,即这个功能有哪几个组成部分,例如页面布局的配置,可以抽象出页面元素、位置、大小、颜色、样式几个对象,我们的配置化,就是针对这些对象进行的。
图3 页面布局抽象配置对象
在抽象配置对象时,有以下几条重要原则:
第一:根据需求进行抽象
一般来说,在没有其他要求的前提下,抽象出的对象也应该满足MECE原则,即这些对象组合起来就能形成最终的完整功能,同时这些对象相互间没有交叉。
不过在实际功能设计中,我们其实只需要根据具体需求,抽象出需要做配置的对象即可,例如需求只是想换个皮肤,那只需要抽象出“颜色”做成可配置就行了;如果需求是想做页面元素可以调整区域,那只需要抽象出“位置”。
第二:明确抽象对象间关系
抽象出的几个配置对象虽然独立,但不是毫无关联,需要思考清楚这些对象之间的关系是什么,相互之间是如何影响的,例如位置、颜色、大小、样式都是在元素的基础上实现的,先有页面元素,才有其他的配置,这个关系就会影响到我们设计这个功能时,需要考虑顺序、主次。
第三:不同的功能配置化抽象方式不同
很多同学一说到配置化,首先想到的就是模块化,以至于将这两者等同起来了,其实这是片面的认识,例如前面说的页面布局的配置,用的就不是模块化的原理。
模块化本质是一种从业务角度,对业务数据做的内聚和解耦,所以模块化的抽象方式适合业务数据和业务逻辑的配置,但并非适合所有的功能配置。
当配置对象抽象出来后,需要针对它们进一步的细化——分解。