首先表明一下身份,本人是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. Scala中Iterator允许执行一次

    背景 使用spark执行mapPartitionsWithIndex((index,iterator)=>{....}),在执行体中将iterator进行一次迭代后,再次根据iterator执行 ...

  2. mysql在linux下不区分大小写

    1.先停止mysql service mysql stop 2.如果用rpm直接安装的mysql,路径在:/usr/下,查找my.cnf. 3.在[mysqld]下添加: lower_case_tab ...

  3. (转)Android消息处理机制(Handler、Looper、MessageQueue与Message)

    转自 http://www.cnblogs.com/angeldevil/p/3340644.html Android消息处理机制(Handler.Looper.MessageQueue与Messag ...

  4. Oracle数据库导入导出命令总结 (详询请加qq:2085920154)

    分类: Linux Oracle数据导入导出imp/exp就相当于oracle数据还原与备份.exp命令可以把数据从远程数据库服务器导出到本地的dmp文件,imp命令可以把dmp文件从本地导入到远处的 ...

  5. C# 读取Excel文件里面的内容到DataSet

    摘要:读取Excel文件里面的内容到DataSet 代码: /// <summary> /// 读取Excel文件里面的内容到DataSet /// </summary> // ...

  6. JSNO

    JSON 编辑 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.它基于ECMAScript的一个子集. JSON采用完全独立于语言的文本格式,但是也使用了 ...

  7. Eclipse在线集成maven M2eclipse插件

    首先说下版本: Eclipse:3.6 Maven:3.3.1,若不知道如何在本地安装Maven,请参见我的另一篇文章:Window下安装Maven 废话少说,直接讲步骤就好: 1.打开eclipse ...

  8. using 语句中使用的类型必须可隐式转换为“System.IDisposable

    在使用 EF 出现 using 语句中使用的类型必须可隐式转换为“System.IDisposable 今天写在这里分享给大家 出现这样的问题,是因为没有引用  EntityFramework 这个程 ...

  9. 谈FME批量自动化数据转换方法

    FME作为转换神器,支持几百种格式的互转,实现互操作化.从fme.exe执行方式入手,讨论Command命令式执行模板(.fmw/.fmwt)和脚本(.tcl/.py)实现自动化批量转换. 1.fme ...

  10. Android数据存储之SharedPreferences存储

    安卓系统为应用提供了系统级的配置存储方案,它就是靠SharedPreferences接口来实现的,该接口存储的所有信息都是以名值对的形式保存,但其保存的数据类型也仅限于基本数据类型,如字符串.整形.布 ...