几乎每个项目都是需要做管理后台,对于后端开发人员来说,管理后台通常需要自己搞定,而没法得到前端人员的支持。
所以如何简单又健壮的支持某些功能,是我们追求的目标。
举用户改查的例子:
1、通常我们先有一个用户列表,带分页等;
2、然后我们需要提供对单个用户的各种操作,譬如:加金币、解绑手机号、禁用等
譬如,加金币,通常是这样的:
1、拉取列表中的用户金币用于显示;
2、调用加金币接口。
3、如果调用成功,则获取接口返回的金币数或者根据列表中的金币数量增加后的金币数,更新到列表中。
这个流程看下来没什么问题,但却是比较耦合的,因为:
如果自己通过原数据计算,则服务端和前端各有一个加金币的代码,而且有可能产生不一致;
如果是获取后端给出的金币数量,则后端的这个接口就比较复杂,包含修改数据和获取数据;
而且还有一个问题就是操作的类型通常比较多种类型,有些甚至并非操作用户表、有些操作数据比较多、有些操作逻辑很复杂。
以上就是我们遇到的问题,以下为我们简化的方式:
首先,我们需要实现一个获取单条数据的接口,数据格式需要保持和列表的格式一致(尽量列表接口和单条接口复用代码)
然后,我们需要在前端增加一个方法,通过唯一标识(id)拉取单条信息的数据,并遍历列表中的数据,把列表中id等于传入id的条目的数据整体替换。
最后,我们在把每个用户操作成功后,直接调用上一步骤提供的方法(这里我们使用的MVVM框架,所以,所以变更都即使生效,如果不是,请尽量保持列表的生成和单条数据的变更代码统一)。
这样,我们就达成了每次操作都很简单,操作接口也很干净。而且不容易出错 的效果。