1. 程式人生 > >大型網站系統設計架構深入分析

大型網站系統設計架構深入分析

    我的研發實踐中,元件框架設計應該採用分層設計模型,元件採用遞迴結構。每個框架不能依賴其他框架而存在,應該能夠獨立開發和部署。元件和元件之間,元件和框架之間只能通過API通訊。將元件框架應該再細分成表現層框架、業務層框架、資料層框架、公共服務框架、基礎框架、系統框架和與業務系統密切相關的業務框架等構成,除了具體的業務框架外,其他框架必須優先選擇比較成熟的產品和免費框架。

    元件是事先定義了程式設計介面和功能、相互獨立的軟體單元。一個元件一般有元件識別符號、介面、建立方法和功能等要素組成。元件識別符號也就是元件的名字, 在整個體系結構中必須是唯一的,它是客戶程式使用元件的唯一標識。

    元件設計過程中要精心定義元件的建立方法、元件識別符號、介面規範和元件的功能等要素。元件多采用定義了良好介面的工廠元件建立,而工廠元件則由系統 函式或系統物件建立。元件識別符號主要採用GUID、介面名稱、其他特定的字串等表示,它是客戶程式使用元件的邏輯名,應用系統在執行過程中,由容器將其 與元件的具體實現對映。介面規範多用函式和抽象類的形式表現。元件的內部結構如圖2所示。有元件工廠、元件服務提供者、抽象服務等。抽象服務是實現元件接 口的一個抽象類,其目的是為了簡化應用程式對元件的編碼。應用程式只要繼承該抽象類即可滿足介面規範需要,而把精力集中到核心功能的實現上。

元件化的架構設計

當一個元件框架設計完成後,應該按照開閉原則、依賴倒轉原則、介面隔離原則等對其進行評價,檢查和評價整個系統的可維護性和可複用性。

按照開閉原則,要檢查設計的元件框架是否滿足對擴充套件開發,而對修改關閉,即整個框架在擴充套件其功能時,應當是在不修改程式碼的前提下便可,換言之,源代 碼不修改,框架行為就可改變。要實現開閉原則,元件的抽象化是關鍵,實踐中,檢查在框架中是否容易加入“即插即用”的元件便是經驗之一。

依賴倒轉原則,就是要檢查系統要依賴於抽象,而不是依賴於具體的實現。即客戶端程式設計要依賴於抽象耦合,而不是具體耦合,要針對介面程式設計,而不是針對 實現程式設計。具體的講,就是看一個元件在其邏輯名稱、介面不改變的情況下,修改其物件名稱、類名稱以及具體實現的情況下,客戶程式是否需要修改。如果不是, 則該框架不符合依賴倒轉原則,可擴充套件性和可維護性存在問題。

通過介面隔離原則,可以檢查一個元件是使用了多個專門的介面,還是使用單一的總介面進行程式設計。如果使用過於臃腫的介面,便存在介面汙染。一個介面應 當簡單地只代表一個角色,而不是多個角色。如果元件涉及多個角色,那麼每一個角色應當由一個特定的介面代表。也就是說,一個介面其中的函式數量應該越少越 好。

符合上述原則的框架,基本上是在高層次實現了系統的複用,也是一個易於維護的系統,才值得投入人力和物力去編碼,否則,該框架的生命週期不會太長,系統開始修改之時,可能也是其終結之日。