但自我開始閱讀“架構之美”這本書后,開始對架構有了進一步的認識:
本質上,架構只是系統設計中的一部分,無非架構更突出某些細節,并通過抽象省略另一些細節。關注實現系統組件的開發者可能不會特別關心所有組件是如何裝配在一起,而是主要關注少數組件的設計和開發,包括他們必須遵守的架構約束和可以應用的規則。因此,開發者和架構師面對的是系統設計的不同方面。如果說架構關注的是組件之間的關系和系統組件外部可見的屬性,那么設計還要關注這些組件的內部結構。
架構這個詞本質上是從建筑學這個行業引申過來的,所以在軟件開發這個領域好多概念跟現在的建筑都相似。
項目關注點:
功能性、
可變性、
容量、
生態系統、
模塊化、
可構建性、
產品化、
安全性
架構還會影響到組織機構。
架構觀點中的常見思想是結構,每種結構都由各種類型的組件及其關系構成:它們如何組合、相互調用、通信、同步,以及進行其他交互。組件可以是建筑中的支架棟梁或故事中的章節或人物。每種結構都是為了幫助架構師理解如何來滿足特定的關注點,如可變性或性能。展示某些關注點得到滿足時,可能會影響到其他方面的關注點,但架構師必須能夠說明所有關注點都已得到滿足。
架構師的角色:就是做設計上的決定包括行為上和結構上。
信息隱藏結構是面向對象設計方法的基礎,它滿足的關注點:信息隱藏結構的設計應該能滿足可變性、模塊化和可構建性的要求。
定義良好的使用結構將創建系統的適當子集,可以用于驅動迭代式或增量式的開發循環,滿足的關注點:產品化和生態系統。
信息隱藏模塊結構和使用結構是靜態的結構,存在于設計時和編碼時,進程結構是運行時的結構。
進程結構滿足的關注點:性能和容量。
一:伸縮性架構設計
胖客戶端與廋客戶端
在線游戲環境與企業環境幾乎完全相反,
經典的企業環境可以描述為一個“瘦”客戶端連接一個“胖”服務器(這個服務器又常常連接到一個更“胖”的數據庫服務器)。服務器將保存客戶端需要的絕大部分信息,在最理想的情況下,客戶端內在不多,沒有自已的硬盤,它是服務器的一個稱職的顯示設備,絕大多數據真正的工作在服務器上完成。
在線游戲環境與企業環境的共同關注點:
1,對伸縮性的需求表明,系統應該是分布式的、并發的,游戲程序員應該把系統視為一臺單機,運行著一個線程,所有允許部署到多線程和多
2,支持隨時伸縮,同時不要求游戲邏輯受到伸縮的影響,這個架構應該支持游戲動態地響應負載,而不是讓這種響應成為游戲設計的工作的一部分。
架構:
客戶端連接到游戲邏輯使用的通信機制是基礎設施的一部分,這些機制支持客戶端到服務器的直接通信,也支持一種“發布-訂閱”通道,任何發往通道的消息都會送達該通道的所有訂閱者。
游戲服務器的設計方式和游戲為為支持并玩家所采取的伸縮性技術。
并行與延遲