前言
所有的产品设计,本质上都是对于一些数据、内容、结构层、信息做一些交互,这是产品的本质。
增(新增)
做新增功能时,从以下角度考虑:
- 上下限 / 建议值 / 默认值
- 字数输入的上下限、图片/视频大小,考虑前后端是否都需要做限制校验。
- 图片/视频尺寸、图片/视频比例,给建议值及要求。
- 一些低频选项,可以给默认值,无需每次都操作。(例:性别默认男,城市默认当前定位点,是否必输)
- 类型校验 / 格式校验
- 例如:输入类型的全角和半角,可做自动转换提高体验。
- 导入表格的功能,那就限制只能上传Excel格式的文件。另外,.apk、.exe等可执行文件,需要特殊处理。
- 容错机制 / 关联变化
- 手机号已被其他账号绑定,需让用户可做更换绑定、合并账号等操作。
- 昵称被占用,给多个建议昵称,让用户手动选择。
- 自动保存为草稿、编辑状态下阻止浏览器关闭等。
- 自动生成编号、排序方式,关联出现的状态及页面变化。
- 新增后联动变化
- 数据会增加到怎样的一个量,当这些量增加到一定程度时页面需要怎样的表现形式。
- 数据持续增加时,是按数量来固定分页,还是按照页面的长度来分页,还是根本就不用分页。
- “新增"设计细节:
- 增加按钮的样式、位置
- 增加按钮的文案:添加、创建、新建?
- 增加内容的字段
- 字段的必填非必填说明
- 字段的验证、提示说明
- 界面排列的说明
- 弹窗还是当前页跳转?
- …
删(删除)
删除操作比新增操作风险大,但逻辑相对简单,有以下四种情况:
- 删除是否可逆
- 需求上可逆、需求上不可逆
- 逻辑上可逆、逻辑上不可逆
- 哪些不能删,删完之后数据会呈现怎么样形态等
- 是否批量删除
- 是否涉及权限
- 前端删除 or 后端删除(是否给予删除警告提示影响范围/结果)
- 删除范围:可将删除范围设置为默认配置项,包括删除选中/全部/第一个/自定义。
- “删除"设计细节:
- 删除按钮的样式、位置
- 删除案例的文案: 删除
- 删除时是否要确认?确认窗口的样式
- 删除完以后界面布局的变化
- 前端/后端删除
- 界删除之后是否会影响到其他的功能模块?
- …
改(修改/编辑)
包括修改、编辑,需要注意以下两点:
- 能否修改
- 是否拥有权限修改。
- 对原有数据的修改:哪些元素可修改,哪些一旦确定就不可修改,如用户ID不可修改。
- 保存机制
- 定时保存。
- 失去焦点时保存。
- 其他条件触发,比如网络变化等。
- “修改"设计细节:
- 编辑按钮的样式、位置
- 编辑按钮的文案: 修改、编辑?
- 弹窗还是当前页面跳转?
- 可以修改与不可修改的说明
- 更改数据之后,对其他功能模块的影响
- …
查(查询/搜索)
包括查询、搜索,需要注意以下两点:
- 查询
- 实时查询,用于小数据量场景。
- 定时任务查询,用于数据量大,关联表多的情况。历史数据直接读取已经查出来的数据,避免每次查询都是多表联查,可提高查询速度,降低服务器压力。
- 当开发皱着眉跟你说,这个表格字段太多,查询会卡死服务器,就说:跑个定时吧,亲~
- 查询频率,多长时间查一次,根据情况定义。
- 查询速度,查询速度慢的,需要优化。
- 筛选 / 搜索
- 多条件组合筛选
- 模糊搜索、精确搜索
- 下拉框可搜可选
- “查询"设计细节:
- 按照哪些字段进行排序?
- 搜索框:需要对哪些进行搜索?是否可以组合搜索?搜索后的界面如何程序?模糊搜索还是精确搜索?
- 搜索结果的展示如何?是否和搜索条件有关系?
- 搜索条件之间是否有冲突?
- 查不到数据该如何?
- 需要查看哪些数据?
- …
显(显示)
其他六字都服务于"显"字,是七字真言的舵手。“增删改查算传"都通过"显示"与用户互动。用户对所使用的产品的一切感受,也都是通过"显"感受到的。处理异常的时候,要用同理心,去体会用户的感受。
- 可读/易用
- 消除歧义
- 例1:是否确定取消? 确定/取消
- 例2:是否删除?(换行写删除的内容名称及影响范围) 删除/不删除
- 文案有温度
- 现在发生了什么,你需要怎么做,这样做的后果是什么,做了之后还能不能反悔修改。
- 根据用户和场景,决定文案的语气、字数多少、字号大小、按钮大小、是否语音播报、颜色等等。需要有代入感才能写出有温度的文案。
- 化繁为简
- 界面简单
- 文案简洁
- 操作简便:尽量减少点击次数,但敏感操作又会故意设计复杂操作。
- 精简流程:比较难,太精简了会导致耦合度高,太分散了会导致操作体验差,需要适当权衡取舍。
- 消除歧义
- 一致性
- 用一致性消除歧义:用词一致、icon一致、交互一致、色彩一致。
- 共识性一致:比如红色用于警告类,绿色用于引导操作。
- 产品内一致:同一模块,避免出现既有实心icon,又有线条icon,等等。
- 用一致性提高易用性:产品的所有弹窗中,确认按钮在左侧,取消按钮在右侧,等等。
- 用一致性消除歧义:用词一致、icon一致、交互一致、色彩一致。
- 消除焦虑——一切尽在掌控
- 空态页/dashboard合理利用
- 常规加载时,坚决消灭所有空白页,包括返回数据为空的异常情况。先显示骨架图 → 再模块化显示数据。
- 加载动效设计
- loading和进度条,文件过大导致必须等待时使用。让用户有个心理预期,根据其使用场景,合理决策继续等待或者退出。
- 空态页/dashboard合理利用
- 反馈系统——凡操作,必有反馈
- 正常反馈
- 页面有明显变化的,无需额外的反馈,页面变化本身就是一种反馈。
- 页面无明显变化的,用轻提示反馈。比如:操作成功、已添加。
- 没有反馈也是一种反馈。
- 异常反馈
- 操作失败、网络异常、获取数据失败、触发安全机制等,同时提供友好业务报错。
- 错误反馈文案由两部分组成:①用户能看懂的,②开发能定位到问题的。
- 正常反馈
- 用户安全——让用户掌握主动权
- 上限(消息服务)
- 针对重要变更信息,给予消息通知。另外短信通知、推送通知、注册/登录短信、邮件、都需要设置上限。
- 尽量避免系统bug导致短信轰炸用户的情况时有发生…
- 中止及撤回
- 短信、通知、邮件,分批推送,且后台能进行中止发送和撤回操作。
- 隐私数据
- 涉及身份证号码的页面,要做数据权限处理,通常设置为少数人才能批量看到身份证信息。防止被拍照或截屏。
- 在移动端,通常是用户通讯录、摄像头调用、MIC调用、定位等。
- 密码使用密码框。
- 上限(消息服务)
- 按需求/权限显示
- 根据需求做哪些显示
- 显示的方式是怎么样的
- 不同用户的数据权限是否一样,若不一样,该如何表现。
- “显示"设计细节:
- 页面内容的布局
- 每页多少条数据、数据的排序?
- 是否有翻页、翻页样式如何?
- 是否提供查看详情,如何查看?
- 查看是弹窗还是当前页打开,还是新页面?
- 如何从各个操作页面跳转回原页面的方法?
- 跳转回来的页面如何显示?
- 不同权限用户的数据展示是否有不同?展现规则是怎么样的?
- …
算(计算和算法)
包括计算和算法。算法:是指用系统的方法描述解决问题的策略机制。其能对一定规范的输入,在有限时间内获得所要求的输出。 根据算法的定义,产品角度通常涉及到:
- 规则
- 个性化推荐
- 风控
- 打标签
- 积分体系
- 会员体系
- 用户ID
- 订单编号
- 简单运算规则
- 算法
- 搜索查询
- 产品经理需要简单了解一下算法逻辑,能可视化的了解各种算法的运算逻辑。
- “计算"设计细节:
- 计算规则
- 页面公式、特定指标的计算规则
- 数据背后的逻辑
- …
传(传输)
即数据传输。不同服务器之间的数据传递,考虑到用户体验的时候ajax异步更新的传递,还有一些api的数值传递。生活中比如5G的应用亮点是低时延和高带宽,速度快反而是其次。可见"传"的三个点:时延、带宽、速度。因此,从用户角度可分为以下两类:
- 传输安全,结合"显"字,可分为
- 用户可感知类:脱敏传输并脱敏显示、可执行文件加后缀等
- 用户不可感知类:加密传输、接口安全、服务器隔离(敏感服务器不直接面向用户)。
- 传输速度
- 压缩:比如微信发送图片,不勾选原图,图片就会被压缩传输。
- 预加载:比如阅读类App,用户看第一章,他就会预加载第二章。用户读起来就不会有等待加载的过程,不会打断爽感。
- 异步加载:
- 偏移动端:按模块加载并显示给用户,不要等整屏内容都加载完再呈现,避免让用户焦虑。
- 偏PC端:尽量避免整个页面刷新!减少服务器压力,和用户等待时长。
- “传输"设计细节:
- 不同用户之间、不同操作之间传递哪些数据?哪些字段?
- 需要提供哪些API的接口?整合其他第三方系统时,第三方提供的API是否能够满足我们现有需求?
- 数据的流向规则
- …
以列表为例
假如数据做成了列表样式,则需考虑:
- 是否考虑到了分页?
- 是否需要排序?
- 排序的话按什么条件进行?
- 排序满足不了需要的话是否需要搜索框?查询框?
- 查看详细列表的打开方式是怎样的?
- 本页操作还是新窗口操作?
- 跳转之后需不需要跳回来?
- 选择数据支持单选还是多选?单选的话用下拉还是radio?
- …
总结
每当我们在做产品设计的时候,都在心里默念着七个字,基本上设计出来的产品功能点就都覆盖到了,省去了产品讨论和产品研发过程中很多不必要的沟通、交流和冲突。
总之,细节交代的越清楚,和程序猿的沟通成本就越小。