首先表明一下身份,本人是Android前端开发人员,本篇只做合理性探讨,不进行人身攻击;

其次希望各位大神进行点评!点评!点评!  

我们讨论一下接口的两种返回方式,直接举例说明一下,假设书籍信息表有30个字段,现在有各种排行榜和列表都需要显示书籍基本信息,但显示的属性一般会有5-8个左右,各个排行榜显示的字段内容有可能不一样,每个版本显示的属性也可能不一样,那么问题来了,是每次排行榜和列表都返回所有的30个字段还是每次按需返回相关字段呢?

方案一:每次列表和排行榜都返回所有字段

优点:接口稳定,不需要每次升级增加或修改字段

缺点:字段冗余,消耗流量

方案二:按需返回相关字段

优点:减少冗余字段,数据不乱,结构清晰

缺点:升级版本或需求改变的时候接口需要作对应调整

我个人趋向于采用第二种方式,原因就是方案二的优点比较适合移动端开发规范,而针对于方案二的缺点,我建议服务器端建立按字段返回内容的框架,举例说明A排行榜需要BookId,BookName,BookScroe,另一个排行榜B需要返回BookId,BookName,BookDesc,那么后端实现逻辑可简写为:

Public object getA_List() //获取排行榜A

{

Return getBookInfo(new String[]{BookId, BookName, BookScroe});

}

Public object getB_List() //获取排行榜B

{

Return getBookInfo(new String[]{BookId, BookName, BookScroe});

}

Public object getBookInfo (String[] m_Param) //统一获取书籍信息的方法

{

//实现逻辑

}

同理、同一个排行榜A升级版本只需做分支判断就好了;

另外这个getBookInfo(String[] m_Param)在服务器端定义完后,是否客户端根据每次变化,调用getA_List()方法的时候把需要的后台字段,,比如后台定义方法如下:

Public object getA_List(String[] m_Param) //获取排行榜A

{

Return getBookInfo(m_Param);

}

那么后端接口就相对稳定,而前台也可以灵活地根据需要的字段来进行获取了?

我个人意见呢依然是让服务器端来处理这类逻辑,理由:

1、 我们需要做的客户端尽量是瘦客户端;

2、 前台人员不需要关注后台数据表的结构设计,能够快速地进行效果和流畅度的开发,也就是说前端和后端应该是透明的;

3、 考虑到安全性问题,因为如果前端传递参数的话后台数据库的结构表都暴露出来了。

最后,还是希望各位大神不吝赐教!

Android前端人员与后台开发的撕逼(一)的更多相关文章

  1. android支付宝app支付(原生态)-包括android前端与java后台

    本文讲解了 android开发的原生态app集成了支付宝支付, 还提供了java后台服务器处理支付宝支付的加密代码, app前端与java后台服务器使用json数据格式交互信息,java后台服务主要用 ...

  2. android 集成支付宝app支付(原生态)-包括android前端与java后台

    本文讲解了 android开发的原生态app集成了支付宝支付, 还提供了java后台服务器处理支付宝支付的加密代码, app前端与java后台服务器使用json数据格式交互信息,java后台服务主要用 ...

  3. SpringBoot技术栈搭建个人博客【后台开发】

    前言:在之前,我们已经完成了项目的基本准备,那么就可以开始后台开发了,突然又想到一个问题,就是准备的时候只是设计了前台的RESTful APIs,但是后台管理我们同样也是需要API的,那么就在这一篇里 ...

  4. 【转】无后端(nobackend):前端优先的Web开发【译】

    每个应用都由两样东西构成:该应用独有的功能和所有应用共有的功能,比方说用户注册.登录.忘记密码等.而从用户的角度出发,那些独有的功能归结起来就是用户界面以及系统的行为模式.而在视觉表象之后的功能,用户 ...

  5. 【转】C++后台开发之我见

    工作也快两年了,偶然看到自己以前写过的一些技术博客,发现自己自毕业后一直没有更新过自己的技术博客,趁现在是刚过完春节快要回公司工作之际,谈谈我个人对后台开发的一些个人见解,希望能够对在校的学生或者刚刚 ...

  6. (67)c++后台开发

    还记得自己在学校的时候,一直都比较注重的是:编程语言+数据结构与算法.没错,对于一个在校的计算机专业的学生,这是很重要的方面.但是,这往往不够,或许是因为毕业前一直没有进入企业实习,以至于自己在毕业之 ...

  7. 学了C++不知道怎么搞后台开发?先看看这份学习路线吧!

    作者:AJ 在去年结束的秋季招聘中,后台开发或服务器开发的岗位需求一度火热,甚至超过了算法岗.不少同学从诸神黄昏的算法岗战场上退下,转向更偏向工程能力的后台开发岗,从而造成后台开发岗位竞争的大爆发. ...

  8. Android IOS WebRTC 音视频开发总结(六十)-- 您为什么招不到适合的音视频人才

    本文主要介绍音视频行业招聘现状,文章最早发表在我们的微信公众号上,详见这里,欢迎关注微信公众号blackerteam,更多详见www.blackerteam.com 有过音视频人才招聘经验的应该都深有 ...

  9. Android IOS WebRTC 音视频开发总结(四六)-- 从另一个角度看国内首届WebRTC大会

    文章主要从开发者角度谈国内首届WebRTC大会,支持原创,文章来自博客园RTC.Blacker,支持原创,转载必须说明出处,更多详见www.rtc.help. -------------------- ...

随机推荐

  1. SQL Server 获取最后一天(指定时间的月最后一天日期)

    /* author OceanHo @ 2015-10-23 10:14:21 获取指定时间字符串指定日期的月最后一天日期 */ IF OBJECT_ID('get_LastDayDate') IS ...

  2. 用keras的cnn做人脸分类

    keras介绍 Keras是一个简约,高度模块化的神经网络库.采用Python / Theano开发. 使用Keras如果你需要一个深度学习库: 可以很容易和快速实现原型(通过总模块化,极简主义,和可 ...

  3. 【windows 下安装 mysql-server 无法登录问题解决】

    ----------------------------- 无感的首行 ----------------------------- 新版 mysql-server 5.7 安装后发现无法使用 mysq ...

  4. U盘启动盘 安装双系统 详细教程

    U盘启动盘 安装win7+linux双系统 最近在看鸟哥的linux 私房菜 ,看到多重系统那部分,自然的安装多重系统的激情由此而燃.在网上看了很多资料,感觉都不全.经过艰辛的摸索,终于被我发现了一个 ...

  5. 20155306白皎 学习技能+C语言学习

    你有什么技能比大多数人更好 谈起技能,我还有感觉有微微拿得出手的也只有主持这一项才艺了吧.从小学到高中一直参加朗诵比赛,以及从小学到大学一直在所在学校有担任过主持工作. 上大学以来,也参加了院级朗诵比 ...

  6. win7 64的系统安装。net4.0总是提示安装未成功

    主要原因是Windows update的临时文件损坏,建议重命名该文件夹. 1. 开始——运行——cmd——键入net stop WuAuServ回车(停止windows update服务): 2. ...

  7. Could not create the view: An unexpected exception was thrown 【转】

    转:http://blog.csdn.net/shuangzixing520/article/details/35225105 今天打开Myeclipse10的时候,发现server窗口出现一堆问题, ...

  8. OD使用教程11

    首先把安装好的软件拖入PEID,看看它是用什么语言写的    然后用OD载入程序,查找关键字,步骤看上一个笔记 双击到达代码处,发现这在一个跳转里面.可能第一反应是修改跳转,经试验后发现这是没用的所以 ...

  9. python中的enumerate

    读取一个iter,返回[index,内容]的一个list

  10. 堆排序Heap sort

    堆排序有点小复杂,分成三块 第一块,什么是堆,什么是最大堆 第二块,怎么将堆调整为最大堆,这部分是重点 第三块,堆排序介绍 第一块,什么是堆,什么是最大堆 什么是堆 这里的堆(二叉堆),指得不是堆栈的 ...