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、 考慮到安全性問題,因為如果前端傳遞參數的話后台數據庫的結構表都暴露出來了。

 

最后,還是希望各位大神不吝賜教!

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM