當前位置:成語大全網 - 新華字典 - 模塊先於接口

模塊先於接口

通過業務拆解圖,我們把業務需求拆解到場景和功能點,然後又把功能點拆分為頁面和接口,下面,我們就可以進入接口的開發了嗎?還不是,還要進行接口的歸類,模塊的設計,下面,我們就來聊壹下這個話題。

什麽是模塊呢?模塊就是組成系統的各個單元,他由壹系列接口和數據字典組成。具體來說,對接口進行模塊梳理,就是看哪些接口可以合並,哪些接口需要單獨拆開,哪些接口屬於壹類,應該歸屬到壹個模塊下,模塊就是接口的分類。

為什麽要在開發之前,先進行模塊的設計呢?因為壹個系統所包含的接口是非常多的,動輒幾百上千個,而且每次產品的叠代,還會不斷引入新的接口。對接口進行模塊拆解,就是梳理接口的壹個過程。

好的模塊劃分就是系統的頂層設計,他會讓系統架構更容易理解和維護。其實,隨著業務的不斷發展,系統的不斷叠代,復雜度肯定會越來越高,怎麽讓系統保持簡潔,每次系統叠代的時候就得需要進行模塊的重新梳理,梳理模塊也是大家壹起給系統做打掃的過程。如果不進行梳理,就像總不收拾的房間,會越來越亂。每次進行斷舍離,才能讓房間保持整潔幹凈。

那麽,好的模塊劃分有什麽標準呢?

第壹個標準,模塊劃分首要的目標就是要讓人容易理解,不需要額外的解釋成本。容易理解才容易掌握,維護起來才會更加方便。

怎麽能讓人容易理解呢?首先,模塊名字得足夠準確和容易理解,好的名字應該能準確的概括旗下所有接口完成的功能,能讓別人更容易理解模塊主要的內容。要站在所有相幹方的角度去考慮,模塊名字和劃分盡量貼近實際的業務場景,這樣大家理解的成本都比較低。

其次,模塊既然是接口的分類,那麽,怎麽分類就需要滿足人們理解事物的邏輯規則,比如分類的原則,完全窮盡,相互獨立。完全窮盡就是說各個模塊加起來能完整描述業務的功能場景,以電商系統為例,他分為商品、訂單、庫存、物流等模塊,這些模塊加在壹起,大家就能想到壹個電商購買的流程。相互獨立就是說各個模塊的劃分維度應該是壹個,模塊之間不要有功能的重合。達到這樣的標準,大家理解起來就不會有歧義。

最後,模塊梳理後的架構圖應該畫出來,並且標記上版本號,每次叠代都要去更新他,要讓大家時刻都能看得到系統最新的結構框架,以及歷史的架構改變。統壹的架構圖可以方便大家形成統壹的理解,通過查看歷史的變更也能夠了解每個模塊變遷的原因。

第二個標準,模塊的劃分還需要滿足非功能性的需求,也就是要滿足系統對可用性、性能、可維護性、安全性和數據壹致性等要求。很多情況下,不同的功能和接口在非功能性需求方面的要求是不壹致的,這種不壹致促使了模塊的重新劃分,重新劃分之後,才能針對不同的模塊做更專業化的處理。

以電商系統為例,其中,首頁、商品、店鋪和搜索等頁面的訪問量是最高的,因此,這些頁面對數據讀取的可用性和性能要求也是最高的。但是對庫存、訂單、物流等模塊來說,都是內部員工來使用,反而對數據壹致性要求比較高,對性能要求不高。那麽,我們就可以把訪問量高的,給用戶來使用的功能劃分到壹個模塊,可以叫前臺模塊,給內部用戶使用的功能劃分到壹個模塊,可以叫後臺模塊。這麽劃分後,我們就可以針對不同的模塊做針對性的架構設計。兩個模塊之間就可以通過異步的方式進行數據的同步。

再比如,類似商品秒殺之類的功能,因為用戶會在非常短的時間內,同時進行商品的查詢和購買,對性能和可用性的要求是非常高的,要遠高於系統日常的狀態。這時候,我就要把秒殺的功能單獨劃分出壹個模塊,進行單獨的、針對性的架構設計。