Plato, Magritte, Sartre & Carroll - Learning Software Design from the Masters
summary
Argues that design comes from isolating essence before implementation and shows a concrete refactor of a messaging library: fields reduced to name+type as minimal field, bit locations and strong types separated, defaults split from matchers, and messages split into owning vs view plus flexible storage. Uses modern C++ metaprogramming, templates and ranges so the compiler infers layout, enables safe composition of headers/payloads, and models hardware register semantics with a truth-table write semantics approach that simplifies APIs and avoids runtime overhead.
AI-written summary · about
chapters (9)
- 0:00Introduction
- 3:32Plato and programming
- 10:38Software's Platonic essence
- 28:45Magritte and API representation
- 40:10Sartre and concrete programming
- 53:12Play in software design
- 1:01:19Carroll and C++ limits
- 1:18:18Naming conventions
- 1:23:33Conclusion
related talks
53mSoftware Design: Beyond Boxes & Lines
47mExpressing Design in Code: Architecturally-Evident Coding Patterns
45mPostmodern Programming
34mHow I learned to stop worrying and love Functional Design
32mTimeless Design Principles
38mSoftware Engineering: A philosophical activity
01h 01mSoftware Design: Myths and Legends
08mLightning talks – 101 Things Software Never Learnt
