zoukankan      html  css  js  c++  java
  • Android前端人员与后台开发的撕逼(一)

      首先表明一下身份,本人是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、 考虑到安全性问题,因为如果前端传递参数的话后台数据库的结构表都暴露出来了。

     

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

     

  • 相关阅读:
    学了这些,你就算入门DIV+CSS了(转)
    【转】Web service是什么?
    [转]MongoDB插入和查询操作
    【转】安装m2e最佳方案
    XDS框架基本事务及其Soap消息实例
    数据表改变之后数据的迁移
    HL7 PID (Patient Identification) Segment(HL7规定的PID字段)
    海量数据库的设计
    【转】基于Axis2开发WebService
    【转】JAVA 调用Web Service的方法
  • 原文地址:https://www.cnblogs.com/Hua-Min/p/5424191.html
Copyright © 2011-2022 走看看