首先表明一下身份,本人是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. Daily Scrum 12.17

    今日完成任务: 解决匿名回答时候字数限制问题:完善了用户界面的UI设计: 明日任务: 孙思权 接口设计 晏旭瑞 资源索引问题 冯飘飘 解决上传资源时候不勾选或不添加选项内容可以上传的问题 黎柱金 进行 ...

  2. angular js 自定义js错误处理(Angularjs js error handler)

    使用AngularJS的时候,对JS错误如何自定义处理?(比如用Google Analytics记录angularjs使用中出现的js错误) AngularJS自带一个错误处理service:$exc ...

  3. 图表插件使用汇总(echarts,highchairts)

    1.echarts之饼图显示数字 option={ title: { text: '某站点用户访问来源', subtext: '纯属虚构', x: 'center' }, tooltip: { tri ...

  4. Orchard源码--初步(1)

    1.打开解决方案Orachard.sln 2.直接启动项目调试 3.接着你会看到下图 呵呵,有点啰嗦( ̄︶ ̄)↗ 涨 4.点击上图的‘Finish Setup’后

  5. table表格制作

    分享一个简单的表格,代码如下: <table border=3 bordercolor=blue align=center cellspacing=3 cellpadding=6> < ...

  6. 数位DP

    题意:(hdu 4734) 我们定义十进制数x的权值为f(x) = a(n)*2^(n-1)+a(n-1)*2(n-2)+...a(2)*2+a(1)*1,a(i)表示十进制数x中第i位的数字. 题目 ...

  7. mysql mHA manager 状态修改

    启动:nohup masterha_manager --conf=/etc/masterha/app1.cnf --remove_dead_master_conf --ignore_last_fail ...

  8. <Oracle Database>数据库启动与关闭

    启动和关闭Oracle数据库 要启动和关闭数据库,必须要以具有Oracle 管理员权限的用户登陆,通常也就是以具有SYSDBA权限的用户登陆.一般我们常用INTERNAL用户来启动和关闭数据库(INT ...

  9. zmq学习笔记

    1 zmq_socket(3) Manual Page 1.1 一个socket可连接多个对端socket: 通过使用多个zmq_connect() 1.2 一个socket可绑定到多个地址上接受连接 ...

  10. viojs1908无线网路发射器选址

      描述 随着智能手机的日益普及,人们对无线网的需求日益增大.某城市决定对城市内的公共场所覆盖无线网. 假设该城市的布局为由严格平行的 129 条东西向街道和 129 条南北向街道所形成的网格状,并且 ...