5分钟教你写一份全面的原型文档

原型文档是产品经理的基本功。形式不重要,内核在于将心中的方案详细描述出来并能够让开发执行落地。

也只有将文档全面准确地写出来,才会避免开发按照自己理解去写,然后测试告诉你iOS和安卓两端同一个功能有大量不一致的窘境。

大到一个系统,小到一个页面,其实都会涉及到两部分:数据和交互。

数据是信息,通过人机交互的方式将信息流转起来,从而解决用户的问题,创造产品的价值。

数据

数据分为前置数据、页面展示和后置数据。

以一份表单举例,前置数据代表着表单的表头信息是从哪里来的,这些表头是文本框,还是单选框,又或是日期?页面展示代表这些数据是以什么顺序展示的,所有表头信息都消失时如何展示;而后置数据代表着当用户提交后,这些数据又去向哪里?是哪个数据库中的哪些字段,是单表增加还是多表增加……

别着急,下面将详细解释

前置数据:

功能不是无源之水,第一件事是说明数据的来源。

1、数据来源:

服务器数据

本地缓存数据

而服务器数据又分前端请求和后端推送。无论请求还是推送,要明确时机。比如前端请求是轮询,还是用户端手动触发?后端推送是触发条件后自动推送,还是工作人员在后台手动触发。

2、请求的数据范围

全量请求

分批次请求

对于大量数据,一般会采用批量请求的方式,不仅减少算力和时间,也会保证前端渲染的质量。一次行全量请求固然会消耗算力和时间,但是也会保证数据的准确性,不会因为数据的增删改而向用户提供错误的信息。

3、请求的逻辑

牵扯到后端以什么样的筛选条件或算法提供数据

4、包含哪些参数

5、加载中的一系列判断

5.1)加载动态

icon形式加载态

有进度条的加载态

当加载时间较长时一般会用带有进度条的加载态,但是进度条本身也需要一个接口来计算加载进度,其实是一种额外的算力消耗。

5.2)加载底图

5.3)无网、弱网判断

5.4)加载顺序

比如一道题目会优先加载文字,然后再加载图片。文字中又有可能先加载题型和题 干,最后加载选项。

5.5)加载方式

预加载

延时加载

实时加载

这些方式其实都是为了保证响应速度而在前端做的优化。比如预加载会在做第 49道题时,把从50~100道题预先加载到本地,以保证用户体验。

5.6)加载条数

当数据量过大时,分区间加载数据不仅减少响应时间,也会保证渲染质量。

6、兼容问题

老版本是否兼容新数据

老数据如何处理

新手最常犯的错误就是没有考虑好新老版本的兼容问题。如果老版本不兼容新数据,那么该数据是无法被展示的。还有就是老数据的清洗处理,如果后台一个默认选是的数据,改为可以选择是或否,那么老数据默认选是,还是默认选否——总之不能让业务部门一个一个把老数据再选择一遍吧:(

页面展示

1、常规状态

数据的时间范围

数据项是否会因为时间或角色的影响而增加、减少

比如移动联通的通话记录的范围仅限6个月,不会因为你买的是100元还是20元的套餐给你额外多加2月的记录。

2、异常状态

全空值页面

半空值页面

加载错误提示

阐述出来异常情况是基本要求。在异常页面上做合适的引导,让用户不迷路是对产品更高的要求。

3、数据限制

文本最大长度

敏感词限制

4、数据排序

如果是一种排序规则,那么一定以唯一标识作为排序规则;如果是多种排序规则,也一定会用唯一标识作为最后的规则。比如成绩单以分数高低排序,当出现同分的情况时,以用户ID作为排列顺序。

5、缓存机制

强缓存

对比缓存

删除&更换规则

缓存目的是减少请求次数和响应时间。而代价是数据的真实性。强缓存可以最大限度上减少向server请求的次数,但同时数据如果有变化却也无能为力。没有最好的机制,要因地制宜。

6、刷新规则

触发时机

比如进入、返回页面时请求数据;从后台唤醒时请求数据;手动刷新时请求数据

后置数据:

1、结果的返回

无论是前端请求还是后端推送,都需要将信息给到用户。既可以是成功信息,也可以是失败的信息,比如给出抢票失败的结果。但无论如何,对结果的引导和提示都是至关重要,如果抢票成功,需要在提示中再次提及票面的信息,向用户进行二次确认;如果是失败,那么也要引导用户对不同时间段/地点进行二次抢票等等……

2、数据的走向

增删改查4种行为对应着数据库中不同的数据走向。比如用户做完10道题后并选择付费批改,那么此时至少在刷题记录表、和订单信息表中同时增加两项内容。如果用户同时删除了一节过期课程和一节直播课程,那么数据库可能会分别将这一条信息逻辑删除和物理删除。

3、数据的处理

实时处理/异步处理

结果的计算

在很多英语学习软件中会向用户提供测评功能,会根据用户在测试中的听说读写来评价其英语水平。而这个结果(数据)就涉及到是一次性把所有题目都做完再给出测评结果,还是把听说读习其中一项完成后就进行判断,而后不断跟进其他项的结果进行调整。而最后的评价是如何计算的,其中涉及到哪些算法?可能会涉及正确率和答题用时等因素……

当涉及有关数据的内容时,如果拿不准,一定要多和开发同事多多协商讨论——毕竟他们对数据才最有经验。


交互

交互分为前置交互和后置交互

前置交互

1、功能的入口

入口的热区(具体大小由UI定义)

入口的禁用状态&非禁用状态

入口的提醒

比如消息的入口在底部tab栏,该入口永久出现,且不会出现禁用的状态。入口旁边 的红色数字会提醒你有几条未读的消息。

2、当前交互

交互手势

获取焦点后的展示

校验方式

失去焦点时校验

实时校验

提交时校验

是否有联动选项

后置交互

1、数据提交后的状态

成功和失败的提示

如果成功是否会进入新的页面

失败时的提示和

2、提交中的加载

3、返回逻辑

是原路返回,还是定向返回。比如取消支付后会来到订单页面,而不是商品详情页。此外,还要检查页面返回是否有完整路径,避免造成死循环。

最后

文档的细节特别多,以上内容在有的场景下可能也无法囊括。期待小伙伴如果有不同意见,不吝指教,大家共同进步。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容