拓展2:若多个项目均要记录用户的操作,不需要为每个项目单独开发一套操作日志功能,而应该设计一个用户操作日志的公共组件(本文只讨论为单一项目设计用户操作日志,组件的设计不在本文讨论范围内,不过设计组件时仍需先理清各项目的用户操作日志,再同开发讨论如何抽离)。
三、五步设计用户操作日志1. 梳理操作列表
梳理操作列表就是罗列出用户的哪些操作要在用户操作日志中记录。具体的方法是:在功能列表的基础上,根据业务需要筛选出要记录的功能。
如上图所示,左边是产品的功能列表,经过产品经理的调研和分析,认为本项目的用户操作日志中不需要记录查看及查询操作,并且也不需要记录公告管理中的所有操作,因此制作了右边的操作列表。
2. 梳理记录字段
在本步骤中需要产品经理明确针对每个操作要记录的字段有哪些。至少应包括用户、操作时间、操作位置、操作对象和操作类型,再根据业务的需要增加变动值、IP地址、设备信息、操作页面等其他字段。
3. 填充具体规则
搭建好操作列表和记录字段的框架后,接下来就是往里面填充具体的规则了,即如何将操作日志以通俗易懂的方式展现出来。
如上图所示:添加、删除、停用等操作由于只涉及一个对象的一个状态,所以处理起来比较简单,如[2022-10-10 19:10:26][小王1816121315]在[学院管理]中[添加]了[学院一(002)];
批量操作可以被看成是多次对单个对象进行操作,也只涉及一个状态,如[2022-10-10 19:10:26][小王1816121315]在[学院管理]中[添加]了[学院一(002)、学院二(003)、学院三(004)];
最复杂的是对编辑操作的处理,因为涉及到两个状态,即编辑前和编辑后,下文会以“编辑”操作为例介绍如何记录两个状态的操作内容。
注:需要根据业务需求决定日志记录的颗粒度,可只记录到操作类型,也可记录到每次操作的详细内容。
1)有限值
针对有限内容(如下拉框、多选框、复选框等)可直接记录前后变化,如题目难度:将[难度一]修改为[难度二]。
2)短文本
由于文本内容较短,也可以直接记录编辑前和编辑后的内容,如学院名称:将[学院一]修改为[学院二]。
3)长文本
由于文字较多,若像短文本那样将全部内容都展示出来,则不利于用户看出变化。这时就可先按“行”梳理长文本内容,编辑后只给用户展示出变动行的内容,如下图所示,可以很清晰地看出用户删除了第285-294行,新增了289-298行。