在 「軟件設計要素初探」 一文,嘗試從軟件設計的總體角度,綜合討論了軟件設計的各類要素。本文討論業務應用中的常見套路:業務模式。
html
軟件開發過程當中,交織着對業務規則、業務流程的認識、理解、設計、實現。業務模式是對業務規則和流程的常見類似性、以及特定業務的數據處理能力的提煉,是業務應用系統中的常見套路。掌握這些套路,有助於更快更好地設計與實現業務。
數據庫
參數檢測模式:調用身份檢測、權限校驗、空檢測、時間參數檢測、業務約束檢測、存量檢測;
併發
健壯服務調用模式: 健壯地調用服務接口。若調用成功,則抽取數據部分;若調用失敗,適當地打印錯誤日誌和返回錯誤信息;
函數
多源數據組裝模式: 從多個服務接口源獲取數據後進行組裝,進行下一步健壯服務調用。
線程
數據解析與轉換模式:從一個對象轉換到另外一個對象;在對象、Map、JSON之間互轉;屬性拷貝。
設計
CRUD模式: 增刪查改,經典的數據庫訪問模式。
日誌
接口正交模式:API接口是正交的無重疊的可靈活組合的,好比先搜索關鍵詞列表再根據關鍵詞列表獲取詳情,而不是在搜索接口中把詳情數據一併返回。
htm
冪等處理模式: 識別重複請求並進行相應處理(直接返回最近一次處理的結果、忽略、報錯等)。涉及金額和數據一致性的地方尤爲要細心。
對象
事務處理模式: 多個數據存儲操做做爲一個原子性操做要麼所有成功要麼所有失敗,不存在未完成的不完整的中間數據存儲狀態。
blog
資源互斥同步模式: 多個線程同時寫操做相同的資源時,進行資源互斥同步。
多任務模式: 將任務分解爲多個子任務,啓動多個線程或進程來執行子任務,而後彙總子任務的結果集獲得最終的結果。
上下文模式: 對於長鏈路複雜請求處理,建立一個上下文對象,在該上下文對象裏傳遞處理請求所須要的必要信息。最好僅將該對象做爲函數或方法參數而非實例變量,避免引發沒必要要的併發問題。