數據使用準則

  1. 從服務器返回的數據永遠是不可靠的。
  2. 從文件讀取的數據永遠是不可靠的。
  3. 從數據庫讀取的數據永遠是不可靠的。
  4. 總結來說,外部的數據永遠是不可靠的,它會以任何突破你想象的形式出現,就像這個殘酷的現實世界一樣。
  5. Repository是數據外圍,任何類型的數據存取細節(比如 網絡/文件/數據庫)都應該封裝在Repository中,Repository是內部業務邏輯訪問和操作外界數據的唯一接口。
    • Repository爲了解析數據所使用的原始Data類永遠不能被內部業務邏輯直接使用。
    • 內部業務邏輯必須通過DataMapper將Repository返回的原始Data類對象轉化爲業務data類對象(即使兩者的結構一模一樣,也禁止複用)。
    • 原始Data類和業務data類的名稱及結構不必保持一致,業務data類應該也必須從業務邏輯的角度對原始Data進行重組和刪改。
    • 業務data必須加”Model”後綴來表徵其業務data類的身份。
    • DataMapper是內部業務邏輯的數據守衛,DataMapper要保證轉化過的業務data是安全的,有效的,可用的(對於無效數據,也需要返回一個空的Collection/對象)。
    • 內部業務邏輯在使用業務data時不必再考慮安全性(比如預期之外的null)。
    • DataMapper轉化原則:
      • null String統一轉化爲空字符串或者某些特殊的字符串(具體業務類型決定)。
      • 對於實現了DataCheckValid接口的類,一定要行使checkDataValid來檢測和排查無效數據對象(DataCheckUtil)。
      • Map中不能有key或者value爲null的entry。
      • List中不能有null的item。
      • 儘量避免有null的存在,如果確實有,要證明在業務邏輯上的合理性。
      • 對於數值可以做限制,比如價格,可以限制在一個範圍內。
    • DataMapper命名建議爲”業務/模塊名稱 + DataMapper”。
    • DataMapper建議在業務模塊中進行實例化。
    • 業務data類對象每個public成員變量和getter都要加@Nullable/@NonNull。
  6. 設置的保存和讀取也需要遵從Repository原則,不能暴露細節(比如Pref)。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章