跳至主要内容

前言 Preface

隨著時代變遷,寶藏公司舊有之遊戲後端隨著反覆迭代浮現出了不少問題,其中包含:

  • 服務邊界模糊
  • 模組之間依賴關係混亂
  • 專案目錄名稱結構不直覺
  • 使用了已棄用的技術堆疊

在參與過數個專案開發的經驗中,我認為特別重要的設計原則為:

  • 關注點分離 : 將複雜的系統拆解成多個功能單一且邊界清晰的模組,讓每個部分必須專注於處理特定的業務邏輯或技術職責,藉此降低程式碼之間的耦合度,以利系統的長期可維護性與可測試性。
  • 控制反轉原則 : 對於強耦合組件,內部仍應透過介面與依賴注入解耦。組件不應自行實例化下級組件,也不應要求調用者手動注入;而是應將組件間的裝配權交給『IoC 容器』,在物件生命週期初始化時自動完成注入。以資料庫模組為例,內部負責存取資料表的ORM模組依賴DB連線訪問資料庫,應於資料庫模組初始化時對其注入,而非由使用者於外部個別注入。
  • 三次法則 : 當我們第一次需要一個功能的時候,只管實現,第二次要用的時候,可以拿來縫縫補補,第三次要使用的時候再來考慮抽象化。原因是過早的抽象化,很可能提取出不合時宜的介面,導致後續更高的維護成本。至少有了三次的經驗後,才會有足夠的經驗萃取出適當的介面。

本章節後續將描述重新規劃的遊戲後端架構,並交代所使用之技術堆疊,專案目錄結構等,以利未來任何欲開發長連線單機/多機遊戲的開發者能夠快速上手。