軟體設計模式 — Data-Oriented Design

Photo by Rebecca Oliver on Unsplash 遊戲開發對很多開發者來說是個陌生的領域。遊戲對於效能的極高要求跟規格的不確定性,產生出了許多特有的系統架構。Data-Oriented Design 便是個有趣的設計模式。 相較於其他設計模式,Data-Oriented Design 深受硬體快取(cache)架構影響。對於現代的高度 pipeline、高速的 CPU 架構而言,資料的存取方式對效能有非常大的影響。比起 L1、L2 cache,對主記憶體的一次存取帶來的是數百倍的效能損耗。為了避免太過抽象,就用個實際的例子來解釋吧。 ...

<span title='2018-07-16 06:19:38.744 +0000 UTC'>July 16, 2018</span>&nbsp;·&nbsp;poga

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

在開發軟體時,有許多眾所周知的架構模式(architecture pattern)可做為參考。例如最廣為人知的 MVC 架構。採用這些常用模式,能大幅減低溝通成本,各種 Framework 也能提高開發速度。 現在已經是個以資料為中心的環境,各種商業決策都依賴大量的資料。因此,系統必須能提供各種資料格式與查詢方式供各種需求使用。在這樣的環境中,也慢慢發展出許多特有的模式。 ...

<span title='2017-12-22 07:32:07.829 +0000 UTC'>December 22, 2017</span>&nbsp;·&nbsp;poga

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

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

<span title='2016-08-27 05:06:01.256 +0000 UTC'>August 27, 2016</span>&nbsp;·&nbsp;poga

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

自古以來,軟體工程師都在追求好維護,容易理解的軟體架構。傳統上,我們需要參與過各種大型軟體專案,從中獲取經驗,或是透過昂貴的課程,大量的論文,才能從前人的經驗中學到一些方法。 今天,我想試著透過 LOG 這個人人都碰過的資料結構,來解釋許多複雜系統的核心,只要你能理解 LOG,你就能設計出好理解、容易維護的系統架構。 ...

<span title='2016-08-20 05:06:01.256 +0000 UTC'>August 20, 2016</span>&nbsp;·&nbsp;poga