系統架構

軟體設計模式 — Data-Oriented Design

image

Photo by Rebecca Oliver on Unsplash

遊戲開發對很多開發者來說是個陌生的領域。遊戲對於效能的極高要求跟規格的不確定性,產生出了許多特有的系統架構。Data-Oriented Design 便是個有趣的設計模式。

相較於其他設計模式,Data-Oriented Design 深受硬體快取(cache)架構影響。對於現代的高度 pipeline、高速的 CPU 架構而言,資料的存取方式對效能有非常大的影響。比起 L1、L2 cache,對主記憶體的一次存取帶來的是數百倍的效能損耗。為了避免太過抽象,就用個實際的例子來解釋吧。

» Read More

Kappa Architecture:以資料為中心的系統架構

在開發軟體時,有許多眾所周知的架構模式(architecture pattern)可做為參考。例如最廣為人知的 MVC 架構。採用這些常用模式,能大幅減低溝通成本,各種 Framework 也能提高開發速度。

現在已經是個以資料為中心的環境,各種商業決策都依賴大量的資料。因此,系統必須能提供各種資料格式與查詢方式供各種需求使用。在這樣的環境中,也慢慢發展出許多特有的模式。

» Read More

萬事萬物皆是 LOG — 參考資料

之前在 COSCUP 2016 榮幸講了一場 萬事萬物皆是 Log — 系統架構也來點科普。結束後被詢問有沒有一些靈感來源、延伸讀物、參考資料等等,這裡就把我有記下來的參考資料整理在此。一些時間關係沒有帶到的主題就也一起放在這了。

» Read More

萬事萬物皆是 LOG — 系統架構也來點科普

image

這是 COSCUP 2016 的講題逐字稿,投影片在
另有延伸參考資料

自古以來,軟體工程師都在追求好維護,容易理解的軟體架構。傳統上,我們需要參與過各種大型軟體專案,從中獲取經驗,或是透過昂貴的課程,大量的論文,才能從前人的經驗中學到一些方法。

今天,我想試著透過 LOG 這個人人都碰過的資料結構,來解釋許多複雜系統的核心,只要你能理解 LOG,你就能設計出好理解、容易維護的系統架構。

» Read More