首先架構(gòu)要解決幾個問題
- 如何讓業(yè)務(wù)工程師更方便的調(diào)用網(wǎng)絡(luò)api, 盡可能的在各種網(wǎng)絡(luò)情況下都有良好的體驗?
- 頁面如何組織才能降低業(yè)務(wù)方的耦合度, 盡可能降低業(yè)務(wù)方界面開發(fā)的復(fù)雜度, 提高他們的效率.
- 當(dāng)數(shù)據(jù)在本地有存取的需求的時候, 如何合理的安排?如何盡可能的減小性能的消耗
- iOS有審核周期, 如何緊急修復(fù)bug, 如何發(fā)布一些熱更新?
總結(jié)起來也四點
- 網(wǎng)絡(luò)層的設(shè)計方案
- 頁面的展示,調(diào)用,組織都有那些方案
- 本地持久化的方案
- 動態(tài)部署的方案
我們需要了解業(yè)務(wù)方的需求什么, 從而設(shè)計出合理的架構(gòu).
什么叫一個好的架構(gòu)
- 代碼整齊, 分類明確, 沒有common, 沒有core, 這么惡心的命名
- 不用文檔, 業(yè)務(wù)方很容易上手
- 思路和方法要統(tǒng)一, 盡量不要多元
- 不要橫向依賴, 不要跨層
- 對業(yè)務(wù)方該有限制的地方
- 容易測試
- 保持一定量的超前性
- 接口少, 接口參數(shù)少
- 高性能
數(shù)據(jù)層持久化方案
- 構(gòu)造異步執(zhí)行單例類(隊列), 處理所有的數(shù)據(jù)庫寫入和讀取的操作
- 數(shù)據(jù)庫類&數(shù)據(jù)庫池(不同的數(shù)據(jù)庫連接)