軟體設計模式 — Data-Oriented Design

image

Photo by Rebecca Oliver on Unsplash

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

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

» Read More

LuaJIT 實做探索 — NaN Tagging

image

一切都是為了效能

故事要從 boxed value 跟 unboxed value 說起。

» Read More

遺忘的生產力

人們談到生產力,似乎就免不了討論各種蒐集想法、整理心得的工具。彷彿忘了的東西都是一種損失。

與其努力記下所有事情,不如試試盡情遺忘吧。

» Read More

Why Serverless

本文擷取、修訂自 2018.03.29 我在 iThome Serverless All-Star 的分享的逐字稿


究竟為什麼要用 Serverless 呢?

» Read More

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

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

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

» Read More

Minimum Viable Ownership

我始終不喜歡「擁有」的概念。那是種排他、缺乏多樣性的想法。

Open Source 也是如此。

» Read More

平行世界

有些事情總讓人覺得,Groundhog Day 跟平行世界是真的存在的。

image

» Read More

又回來用 Omnifocus 了

當初那忙到吐血的兩三年中,幾乎都是靠著 Omnifocus 在維持生活的運作。

» Read More

該怎樣教任何人任何技能

image

看到 氣餒止步!該怎樣教文組的人寫程式? 這篇,講一下自己的教學經驗吧。

» Read More