请教:app开发中,哪些逻辑应该放在服务端?

newqm 2015-10-16 10:59:36
情景1:客户端有一个博客列表页面,每篇博客有一个“收藏”按钮,如果当前用户收藏过此博客,则不显示此按钮。
关于对“收藏”按钮的初始化,有2种方案:
1.客户端保存一份当前用户收藏过的博客ID列表blogIDs,从服务端拉取到博客列表后,展现时,拿每条博客的ID与本地的blogIDs对比,以决定是否显示“收藏”按钮;
2.服务端拉取博客列表时,关联查询出当前用户的收藏状态。展现数据时直接使用查询到的数据决定是否显示“收藏”按钮;

2种方案优劣分析:
方案1,博客数据、用户数据分离,耦合性低,博客数据可做缓存;缺点是客户端逻辑相对复杂,同时,考虑到客户端版本(iOS、安卓……),需求变化时,多个版本需要同时维护;
方案2,简化客户端逻辑,开发、维护灵活;缺点是服务端需要联表查询、不能缓存(每次查出的数据结果都只针对当前用户有效)

情景2:博客作者信息中包含城市、个性标签等键值信息,服务端与客户端之间传输这些键值信息时,也有2种方案:
1.客户端保存一份键值对配置表,例如城市:{1:北京;2:上海...},服务端返回键信息(例如1),客户端到配置表中查询出对应的值,并显示到界面中;
2.服务器关联查询出对应的值(城市名、标签名),返回给客户端,客户端直接显示
这2种方案的优劣对比跟情景1中差不多,不过涉及到另外一个问题:
需要增加键值对(例如增加一个个性标签“冰雪聪明”),需要同步更新客户端配置文件

有劳大家分析下,这两种情景下,你们更倾向于选择哪种方案呢?麻烦同时注明你们的开发职位(app前端/app后端/其他前端/其他后端)
...全文
145 1 收藏 3
写回复
3 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
「已注销」 2015-11-09
情景1。果断选择2,不说跨平台,就说单个客户端,哪天我客户端卸载再安装,或者换手机,我收藏的找谁匹配去? 情景2。果断还是2。自己轻松,而且还不需要匹配,后台也减少了冗余字段。 我APP前台的,经常和后台沟通哪些信息要传哪些不需要。
回复
相关推荐
发帖
iOS
创建于2008-03-10

2.8w+

社区成员

主要讨论与iOS相关的软件和技术
申请成为版主
帖子事件
创建了帖子
2015-10-16 10:59
社区公告
暂无公告