Value-oriented design in an object-oriented system
summary
Introduces an open‑source C++ library (lager) that implements cursors and composable lenses to expose a single-atom, value-oriented store into object-oriented UIs. Demonstrates a Qt/QML to‑do app using immutable containers (flex vector) and transducers to map between std::string and QString, showing real code, saving/loading, and that the approach is efficient in practice. Cursors are single‑threaded (not concurrency safe), clients use it in production, and the implementation preserves modularity while avoiding pointer/lifetime plumbing.
AI-written summary · about
chapters (22)
- 0:00Introduction
- 2:00Squares and values
- 6:20Object fetishism
- 11:25Value cons
- 12:30Modularity
- 15:13Single atom architecture
- 18:01Unidirectional dataflow architecture
- 20:03Room model
- 22:32House model
- 26:13Redux approach
- 26:49Idealism
- 28:59Cool Source
- 29:48Box
- 33:39Lenses
- 36:20Lens naive implementation
- 39:33Functions as lenses
- 42:26Cursors
- 46:19Lens
- 48:25System overview
- 50:33Library overview
- 54:19Transducers
- 57:04Example
related talks
01h 02mObjects vs Values: Value Oriented Programming in an Object Oriented World
01h 01mEffective Qt (2017 edition)
52musing namespace std;
01h 03mFunctional C++ for Fun & Profit
01h 21mAdvanced Qt - A Deep Dive 6/6 - ModelView Part 2
55mKEYNOTE: Qt Containers and Algorithms
01h 01mValue Oriented Programming. Part 1: You Say You Want To Write A Function
01h 01mAdvanced Qt - A Deep Dive 5/6 - ModelView Part 1
