Keynote: Abstraction Patterns
summary
Argument: working code screams where abstractions are missing, so identify concrete signals (repeated magic formulas, long parameter lists, clustered variable name prefixes, load‑bearing blank lines, huge switches) and replace them: name constants, group fields into structs, replace seven booleans with an options struct, use std::optional/std::expected for multi-value returns, factor with extract function, isolate platform bits into per‑platform headers, or convert big switches into subclasses — result: far fewer bugs, much faster maintenance (adding reports drops from hours to minutes).
AI-written summary · about
chapters (13)
- 0:00Importance of abstraction
- 5:25Missing abstractions in code
- 8:55Abstraction patterns for design
- 13:14Minimizing complexity with abstractions
- 21:45Structs and classes for parameters
- 27:46Grouping variables into structures
- 30:54Refactoring with whitespace
- 36:53Encapsulating logic in classes
- 41:50Inheritance to reduce duplication
- 47:11Platform-specific abstractions
- 50:43Switch statements to inheritance
- 54:13Splitting classes into components
- 1:00:48Listen for missing abstractions
related talks
01h 05mAbstraction Patterns: Making Code Reliably Better Without Deep Understanding
01h 24mKeynote: Optimizing for Change
24mKeynote – Michael Feathers
01h 10mKeynote: Strategies to Cope With Conflicting Design Patterns in C++ Development Teams
37mOpening keynote: Clear is better than clever
01h 18mAbstraction: The True Superpower of C++
01h 01mEasy to Use, Hard to Misuse: Declarative Style in C++
56mIdentifying Common Code Smells
