请教:app开发中,哪些逻辑应该放在服务端?
情景1:客户端有一个博客列表页面,每篇博客有一个“收藏”按钮,如果当前用户收藏过此博客,则不显示此按钮。
关于对“收藏”按钮的初始化,有2种方案:
1.客户端保存一份当前用户收藏过的博客ID列表blogIDs,从服务端拉取到博客列表后,展现时,拿每条博客的ID与本地的blogIDs对比,以决定是否显示“收藏”按钮;
2.服务端拉取博客列表时,关联查询出当前用户的收藏状态。展现数据时直接使用查询到的数据决定是否显示“收藏”按钮;
2种方案优劣分析:
方案1,博客数据、用户数据分离,耦合性低,博客数据可做缓存;缺点是客户端逻辑相对复杂,同时,考虑到客户端版本(iOS、安卓……),需求变化时,多个版本需要同时维护;
方案2,简化客户端逻辑,开发、维护灵活;缺点是服务端需要联表查询、不能缓存(每次查出的数据结果都只针对当前用户有效)
情景2:博客作者信息中包含城市、个性标签等键值信息,服务端与客户端之间传输这些键值信息时,也有2种方案:
1.客户端保存一份键值对配置表,例如城市:{1:北京;2:上海...},服务端返回键信息(例如1),客户端到配置表中查询出对应的值,并显示到界面中;
2.服务器关联查询出对应的值(城市名、标签名),返回给客户端,客户端直接显示
这2种方案的优劣对比跟情景1中差不多,不过涉及到另外一个问题:
需要增加键值对(例如增加一个个性标签“冰雪聪明”),需要同步更新客户端配置文件
有劳大家分析下,这两种情景下,你们更倾向于选择哪种方案呢?麻烦同时注明你们的开发职位(app前端/app后端/其他前端/其他后端)
关于对“收藏”按钮的初始化,有2种方案:
1.客户端保存一份当前用户收藏过的博客ID列表blogIDs,从服务端拉取到博客列表后,展现时,拿每条博客的ID与本地的blogIDs对比,以决定是否显示“收藏”按钮;
2.服务端拉取博客列表时,关联查询出当前用户的收藏状态。展现数据时直接使用查询到的数据决定是否显示“收藏”按钮;
2种方案优劣分析:
方案1,博客数据、用户数据分离,耦合性低,博客数据可做缓存;缺点是客户端逻辑相对复杂,同时,考虑到客户端版本(iOS、安卓……),需求变化时,多个版本需要同时维护;
方案2,简化客户端逻辑,开发、维护灵活;缺点是服务端需要联表查询、不能缓存(每次查出的数据结果都只针对当前用户有效)
情景2:博客作者信息中包含城市、个性标签等键值信息,服务端与客户端之间传输这些键值信息时,也有2种方案:
1.客户端保存一份键值对配置表,例如城市:{1:北京;2:上海...},服务端返回键信息(例如1),客户端到配置表中查询出对应的值,并显示到界面中;
2.服务器关联查询出对应的值(城市名、标签名),返回给客户端,客户端直接显示
这2种方案的优劣对比跟情景1中差不多,不过涉及到另外一个问题:
需要增加键值对(例如增加一个个性标签“冰雪聪明”),需要同步更新客户端配置文件
有劳大家分析下,这两种情景下,你们更倾向于选择哪种方案呢?麻烦同时注明你们的开发职位(app前端/app后端/其他前端/其他后端)
...全文
相关推荐
完整的电商app加服务端
【描述】"完整的电商app加服务端"意味着这个项目包含了移动应用前端(客户端)和服务器端(服务端)的所有源代码,允许开发者深入理解整个系统的工作原理,并可以根据需求进行定制和扩展。
购物商城App+客户端+服务端+数据库
对于iOS应用,开发则依赖于Swift或Objective-C,使用Xcode作为集成开发环境。客户端的设计需要注重用户体验,包括UI设计、交互逻辑、网络请求、数据缓存等。
支付宝app支付服务端demo(PHP)版本
这个Demo通常包括了必要的API调用示例、签名算法实现以及回调处理逻辑,旨在帮助开发者快速理解和实践支付宝的App支付流程。首先,我们需要了解的是支付宝App支付的基本流程。
java实现微信App支付服务端
总的来说,Java实现微信App支付服务端是一个涉及接口调用、数据验证、安全处理等多个环节的复杂过程,需要开发者对微信支付API有深入理解,并具备良好的编程和安全实践。
极光推送模拟服务端APP
如果包含源代码,那么这将是一个学习极光推送服务端工作原理的好机会,同时也方便了开发者对推送逻辑进行调试和优化。


