Skip to content
HomeVideosBooks
AllTopicsTrends
BlogsPodcasts
HistoryListsWatch laterLiked videosFollowing

The videos, books, blogs and podcasts Hacker News keeps recommending, all in one place.

VideosBooksBlogsPodcastsAboutPrivacySettings

Data from Hacker News, HackerTube, HackerBooks, HackerBlogs and Open Library. Credits · Not affiliated with Y Combinator.

HomeVideosBooksBlogsPodcasts
Ctrl K
    Cover of Data-oriented design

    Data-oriented design

    Mr Richard Fabian · 2018

    The projects tackled by the software development industry have grown in scale and complexity. Costs are increasing along with the number of developers. Power bills for distributed projects have reached the point where optimisations pay literal dividends. Over the last 10 years, a software development movement has gained traction, a movement founded in games development. The limited resources and complexity of the software and hardware needed to ship modern game titles demanded a different approach. Data-oriented design is inspired by high-performance computing techniques, database design, and functional programming values. It provides a practical methodology that reduces complexity while improving performance of both your development team and your product. Understand the goal, understand the data, understand the hardware, develop the solution. This book presents foundations and principles helping to build a deeper understanding of data-oriented design. It provides instruction on the thought processes involved when considering data as the primary detail of any project.

    Design & UX
    Open LibraryAmazon
    Stats for nerds
    12recommend
    18mentions
    12people
    2019–2026years
    89% recommend11% neutral

    Mentions per year

    20192020202120222023202420252026

    What Hacker News says

    1. lioetersJul 2026
      - Data-Oriented Design Revisited: Type Safety in the Zig Compiler - Matthew Lugg - https://youtu.be/KOZcJwGdQok?si=YDal2Gwb0IJPFgrI

      - Andrew Kelley Practical Data Oriented Design (DoD) - https://youtu.be/IroPQ150F6c?si=F1Z0pLO2W5hbQgpM

      - CppCon 2014: Mike Acton "Data-Oriented Design and C++" - https://youtu.be/rX0ItVEVjHc?si=jv4hhTSBh3XH--xQ

      - Why You Shouldn’t Forget to Optimize the Data Layout - https://cedardb.com/blog/optimizing_data_layouts/

      - Handles are the better pointers - https://floooh.github.io/2018/06/17/handles-vs-pointers.html

      - Enum of Arrays - https://tigerbeetle.com/blog/2024-12-19-enum-of-arrays/

      - Data oriented design book - https://www.dataorienteddesign.com/dodbook/

      - Data-oriented design in practice - Stoyan Nikolov - https://youtu.be/_N5-JjogNXU?si=vhaxYcfE6tl11Sux

      - Programming without Pointers - Andrew Kelley - https://www.hytradboi.com/2025/05c72e39-c07e-41bc-ac40-85e83...

      - More Speed & Simplicity: Practical Data-Oriented Design in C++ - Vittorio Romeo - CppCon 2025 - https://youtu.be/SzjJfKHygaQ?si=jafavSl2YJWk4vIx

      - Rust Handle - https://taintedcoders.com/rust/handles

      thread
    2. RendelloJun 2026
      I think I had a pretty good understanding of set theory through programming, and although I tried to get into the more mathematical side of it, I found most things to be 1. trivial (because I was used to thinking in lists, sets, hashmaps, etc.), or 2. irrelevant to me. The latter was a shame, because I've always liked the abstraction of math, but I couldn't help but feel I wasn't learning anything actionable when learning more about sets (though maybe I'm wrong).

      What had a big impact on me was the relational model, specifically after reading Richard Fabian's Data-oriented Design book [1]. I had watched Mike Acton's famous Data-oriented Design talk [2], then Andrew Kelley's talk [3] where he explains speedups in the Zig compiler using DoD principles (largely using methods from Acton's talk), but Fabian's book tied these concepts to database normalization and the relational model.

      Most DoD advice is very "exercise left to the reader", because it's about matching a specific problem, but using the relational model and considering your data's primary and foreign key relations can be really powerful. I just wish more of that power was exposed through regular programming language interfaces, rather than having to pull in and marshal data through a DB. I might have to try C# and Linq.

      1. https://www.dataorienteddesign.com/dodbook/

      2. https://www.youtube.com/watch?v=rX0ItVEVjHc

      3. https://www.youtube.com/watch?v=IroPQ150F6c

      thread
    3. RendelloJun 2026
      > SoA is not universally better.

      This is an important part of Data-oriented Design: the representation of the data should be pragmatically tied to its access patterns, not dogma.

      Richard Fabian's DoD book gives the example that (x,y,z) is almost always better as a classic array-of-structs rather than a struct-of-arrays, because if you're accessing one dimension, you probably are want to process the other two dimensions at the same time:

      https://www.dataorienteddesign.com/dodbook/node9.html#SECTIO...

      thread
    4. halfcatJul 2025
      Look for data-oriented design [0] (not to be confused with domain-driven design) in addition to ECS.

      [0] https://www.dataorienteddesign.com/dodbook/

      thread
    5. shooDec 2024
      see also: Richard Fabian's data-oriented design book -- the chapter on existential processing discusses enums

      https://www.dataorienteddesign.com/dodbook/node4.html

      Rough idea: model everything as relational data - define 1 table for each state. membership of a record in the table corresponding to state X implies that record is in the given state X.

      > the reason why you would put an enum in table form, is to reduce control flow impact. Given this, it's when we aren't using the enumerations to control instruction flow that it's fine to leave them alone

      An example of the latter might be some kind of state machine, where you can write branch-free code to determine the successor state from current state, and no other processing needs to branch on the state tag.

      thread
    6. jpardyJul 2024
      In addition to Mike Acton's talk, there is also the "DOD Book": https://www.dataorienteddesign.com/dodbook/
      thread

    Related

    Cover of Designing Data-Intensive Applications
    2014–2026

    Designing Data-Intensive Applications

    Martin Kleppmann
    457 recommend · 846
    Cover of A pattern language
    2007–2026

    A pattern language

    Christopher Alexander
    110 recommend · 368
    Cover of Design Patterns
    2007–2026

    Design Patterns

    Erich Gamma
    95 recommend · 491
    Cover of Domain-Driven Design
    2007–2026

    Domain-Driven Design

    Eric Evans
    104 recommend · 252
    Cover of Visual thinking for design
    2011–2012

    Visual thinking for design

    Colin Ware
    2 recommend · 2
    Cover of The algorithm design manual
    2007–2026

    The algorithm design manual

    Steven S. Skiena
    195 recommend · 321
    Agile Data Warehouse DesignLawrence Corr
    2015–2018

    Agile Data Warehouse Design

    Lawrence Corr
    recommend · 2
    2
    Cover of Data-Oriented Programming
    2022–2026

    Data-Oriented Programming

    Yehonathan Sharvit
    2 recommend · 8