5

面向对象的产品观(4):连接

 3 years ago
source link: http://www.woshipm.com/operate/4317622.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

编辑导语:产品的构建流程一直是一个很重要的话题,在上一篇文章中,作者为我们分享了 产品构建的第三层:组合层 ;本文作者分享了在成功组合了产品架构后,怎么让不同模块连接起来,我们一起来看一下。

Qn6NZvY.jpg!mobile

我们成功的组合了一个产品结构之后,接下来要让信息在产品中流动起来,这时候就需要将不同的模块与功能连接起来。

这个就是产品构建的第四层:连接层。

J36vea7.jpg!mobile

软件产品是一个信息不断流动的动态系统,连接层的工作就是让信息在各个模块之间有序的流动。

一、信息如何传递

信息在模块之间传递的包含了如下的部分:方向,顺序和数据。

1. 连接的方向

场景发生的时间顺序就是连接的方向,时间是不可逆的,一个未来才发生的场景不可能出现在过去。

同样,场景对应的功能及用例需要按照时间顺序严格排列,方向一定是沿着时间不断向前的。

2. 连接的顺序

将模块进行连接时需要依据模块对应的场景的连贯性进行连接,不能将两个并不连贯的场景连接到一起;同根据使用场景有先后顺序来进行连接,不能将之后触发的功能放置在前面。

确定连接的顺序时,除了根据对应场景的连贯性进行判断之外,还可以根据模块与功能的前置条件与后置条件进行判断;满足前置条件的模块应该排列在前,后置条件影响的模块需要排列在后。

3. 数据

连接的目的是让信息有序的流动,而信息的本质就是数据,连接的本质就是数据传递。

在面向对象的思想中,万物皆可为对象,那么我们也将数据看做一个对象,这个对象在传递的过程中有哪些信息呢?

  • 对象的状态:这些对象是正常状态,还是特殊状态,还是出现了异常,我们需要根据对象的状态确定它下一步的连接方向。
  • 对象的属性值:对象的属性就是一个对象的特征值,比如我要传递的是商品信息,那么他的属性就包含名称,品类,价格,购买数量等,这些属性值将作为下一步操作的重要依据。

二、连接的要点

连接的三要素:简单、高效、容错性好。

简单:连接的步骤一定要足够的简单,需要找到两点之间的最短路径;毕竟大家都这么忙,能越快的处理完一个事情越好。

高效:信息的传递要足够的高效,对于信息的要求就是数据准确,完整;避免后续重复取值的麻烦。

容错性好:任何一个系统都会出现各种情况的意外,在设计系统的时候需要对可能出现的意外做出完善的处理路径。

三、连接的分类

按照连接的特征来分类的话,连接可以分为:基本流、备选流和异常流。

基本流:基本流是理想情况下信息传递的流程。也是抵达终点的最优路径。

备选流:毕竟世事难料,人们总是不会按照你预想的最优路径来走,这之后就需要预设足够多的非最优但是依然可以抵达终点的路径来让人们抵达终点。

异常流:如果路途中间出现了幺蛾子怎么办?这时候我们需要考虑足够多的幺蛾子出现的可能性,并设置回头路,让用户可以通过这个路径再次回到正路上来。

备选流和异常流的规划,依然使用分解层的妙招:无限穷举。原则依然是相互独立不重复,完全穷举无遗漏。

四、内循环与外循环

经过了前面几层的工作,我们已经知道产品是由模块组成的,而模块又是由功能组成的。

这个时候就出现了一个问题,模块与模块之间必然需要连接,同样的,模块内部的功能之间同样需要连接。毕竟模块就是功能的闭环嘛。

这样就出现了两套连接流程,一套用在模块内部,一套用在模块与模块之间,这两套流程我就叫他内循环和外循环;内循环就是指模块内部的连接流程,外循环是指模块之间的连接流程。

但是就像一个国家包含了省、省包含了市一样;一个一级模块内部可能包含几个二级模块,二级模块可能又包含了更小的模块,低级模块的外循环只是高级模块的内循环的一部分,一个内循环的终点可能是另一个内循环的起点。

所以在实际设计的过程中,我们一定要将不同的循环都当成一个独立的对象,每一个对象之间都有对应的连接点,所有最后对象都是通过连接点来进行连接。

1. 内循环

每一个模块都是一系列相互关联的功能的闭环,功能与功能之间根据用户的实际操作行为又会产生互相之间的联动。这个时候就需要对每一个功能进行连接的设计。

每一个模块都是独立的个体,模块内部功能的连接均仅限于模块内部,对外的接口应该尽量少,如果能够保持入口和出口都只有一个那就再好不过。

太多对外的接口很容易造成流程设计的复杂,过于复杂的流程一定会造成体验的混乱以及增加开发的难度,并且会增加出现BUG的几率。

爱因斯坦说过:“如果解决方法太复杂,那么一定是问题错了”。

2. 外循环

外循环就是模块与模块之间的循环,外循环的注意事项与设计细节与内循环一般无二。

需要注意的是,一个产品包含多个一级模块,一个一级模块中又会包含多个二级模块,所以二级模块之间的外循环只是一个一级模块的内循环;这时候需要注意入口、中间件以及出口,也就是需要确定流程起点的模块以及流程终点的模块;入口负责接收输入的信息,中间件负责将信息进行加工处理,出口负责将信息输出到外部。

内外双循环支撑起了整个产品的正常运转,两个缺一不可,就像国家的经济一样,既要有内循环,又要有外循环。

最后我们回顾一下连接层的内容:

首先,连接是信息有序流动的方式;连接有方向以及顺序,连接的目的是传递信息;信息包含状态信息以及属性值。连接的方向和顺序都依据用户使用产品的时间顺序。

连接又分为基本流,备选流和异常流,连接体系有分为内循环和外循环。

连接是让一个产品动起来的过程,经过了连接层的之后产品已经形成了完整的框架。

按照生物学的说法就是,产品已经形成了胚胎,接着我们只要在框架的基础上搭配上可视化界面就可以实际应用了。

搭配界面就是下一篇《具象化》的内容,请期待下篇。

本文由 @木道人 原创发布于人人都是产品经理,未经许可,禁止转载。

题图来自Unsplash,基于 CC0 协议


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK