互联网产品设计:如何让功能既灵活又简单?( 二 )
所以 , 正是这两部分造成了灵活与简单很难取舍——用户随意输入的内容系统很难解析;而系统方便解析的内容对用户来说太复杂了 。
最后 , 我们可以借鉴技术领域的MVC设计理念 , 来考虑我们的产品功能设计 。
MVC是三个单词的首写字母——M代表Model , 是指产品中的数据模型;V代表View , 是指产品中呈现数据的方式 , 其实就是用户“看得见摸得着”的产品形态;C代表Controller , 指的是真正用来响应用户操作的部分 。
这种设计理念为我们设计复杂功能打开了思路 。
一个产品功能 , 我们可以从三个方面来思考它的设计:
第一部分是Controller , 我们可以理解为“核心功能” 。 比如 , 在搜索引擎中什么是“核心功能”?根据用户输入的条件 , 返回符合条件的结果 , 这就是核心功能;所以“查询”就是一个必不可少的Controller 。
第二部分是View , 直接理解就是“产品形态” 。 比如收缩引擎中的输入框 , 搜索结果列表;这两个具体的产品形态 , 就是两个View 。
第三部分是Model , 这部分就很抽象了;我们在这里不单独解释它 , 结合下面的例子一起说 。
我们以“用Excel中的数据画图表”这个场景为例 , 来看看MVC的三个部分是怎么配合工作的 。
首先 , 我们在一个Excel文件中保存的一份数据 , 这份数据 , 就相当于MVC中的Model 。
接下来 , 我们选中这些数据 , 然后使用插入图表的功能 , 并选择一种图表类型;比如我们选择了折线图 , 这其中“插入图表”就是一个Controller , 而折线图就是一个View 。
这时假设我们不想用折线图了 , 想换成柱状图;那么 , 稍微对Excel有一些了解的同学都知道 , 为了把折线图换成柱状图 , 我们不需要复制一个Excel文件 , 也不需要再安装一套Excel软件 , 只需要改变一下图表类型 。
为什么这么简单?
保存在Excel里的数据Model变了吗?没有 。
“插入图表”这个功能Controller变了吗?也没有 。
要做的只是切换一下View 。
所以 , 假设我们想在自己的产品中 , 增加一个类似“把折线图换成柱状图”的功能 , 我们实际要增加的只是一个View , 而不需要改变已经有的Model和Controller 。
除非我们把“插入折线图”和“插入柱状图”当做完全不相干的两个功能来设计;不过这显然不合理 , 而且已经超纲了 , 我们不在这里讨论 。
三、怎么用MVC设计产品功能?
现在你有体会到MVC在产品设计中的魅力吗?那我们再举个例子:
协作型的产品通常都会增加权限管理模块 。
按照标准的RBAC(Role Based Access Control , 基于角色的访问控制) , 我们需要设计的功能包括:
- 单个/批量管理用户和给用户赋权;
- 单个/批量管理角色和给角色赋权;
- 权限校验 , 返回校验通过或拒绝;
这里只考虑了最核心的功能部分 , 在实际功能落地时 , 多少还会有其他功能补充进来 , 比如单点登录、读取用户信息等 。
首先我们有3个重要的Controller(不是全部哦) , 包括:
- 1个更新用户与角色关系的Controller , 支持批量;
- 1个更新角色与权限关系的Controller , 支持批量;
- 1个校验权限的Controller , 支持不支持批量都行;
- 1个用户与角色对应关系的Model;
- 1个角色与权限对应关系的Model;
- 1个用户与权限对应关系的Model;
最后 , 我们也只需要1个View了 , 因为在交互上无非是查询或者更新“用户-角色-权限”三者之间的关系 。
推荐阅读
- 徐峥|徐峥年初被23家电影公司联名“封杀”,上万人签名抵制,现状如何
- 游戏葡萄|七年磨一剑的任天堂,如何用美术诠释游戏?
- 智能城市崛起,看智能化如何定义未来之城
- 萍姐姐调侃体育|郭艾伦如何回应?国产第一后卫之争愈演愈烈,吴前爆发孙铭徽开挂
- 王者荣耀|李小龙皮肤如何搭配才最帅气,这个回城特效绝配,搭配特效秒变传说皮肤!
- 紫光集团|紫光集团亮相2020全球工业互联网大会,“芯云一体”助力工业互联网领先发展
- 雷科技|朋友圈都在秀的“互联网勋章”到底是什么?
- 剖析爱奇艺积分体系,如何做留存和转化
- ZAKER生活|在俄避难的斯诺登,结局如何?,7年前曝光美国“棱镜计划”
- 周到|复盘上海德比首回合 上港如何破申花的密集防守
