Configuration, Extension, Maintainability
summary
Argues that granular knobs become a maintenance tax: Hyrum’s Law bites, tests won’t catch timing/regressions, and defaults get petrified — examples include inexplicable settings like 256 bytes or 256 MB per-reader across ~1k files and the myth that 80% of cycles live in 10% of code. Recommends outcome-oriented controls (use an enum to optimize for cpu/io/memory), runtime feature flags for gradual rollout, and migration patterns like stamping legacy defaults; proposes intent-focused enums instead of leaking buffer and async internals.
AI-written summary · about
chapters (46)
- 0:00Introduction
- 3:34Centralization
- 5:17Configuration is an abstraction
- 6:28Abstract examples
- 7:05User requests
- 7:39Buffer size
- 8:17Is that the right answer
- 11:12Design Philosophy
- 12:24Compiler Detection
- 13:20Configuration
- 14:39Thermostat
- 15:50Microwave
- 16:26Popcorn
- 19:39Control outcomes
- 20:26Command line flags
- 20:38Optimization settings
- 22:19Buffer buffered reading interface
- 25:20Configuration based on intent
- 28:51Hirams Law
- 30:05Leaks
- 30:36Memory Budget
- 31:50Questions to ask yourself
- 34:02Haunted graveyard
- 36:28Is granular configuration bad
- 37:03Configuration should be orthogonal
- 37:54Refactoring migration
- 38:17Number of threads
- 39:04Default visibility
- 40:59Feature flags
- 42:42Level of abstraction
- 43:06Defining context
- 44:26Class hierarchy
- 45:24Extension in C
- 45:48Stand Accumulate
- 47:22Command Line Parsing
- 48:48Conclusion
- 49:46Highlevel analysis
- 50:15Dynamic configuration
- 51:29External to semantics
- 52:19Generic vs narrow interfaces
- 52:59G flags
- 54:48Outliers
- 55:16Accepting Defaults
- 57:14Exploitable Properties
- 59:01Invariance
- 59:22Dedeprecating knobs
related talks
56mThe art of keeping your project from falling apart
32mMaking Sotware Better, Despite Having Users
36mWhen to be Weird
40mSelling Maintainability
01h 03mKeynote: Abstraction Patterns
46mThoughtful Software Engineering
41mFeature Flags: A Boon or a Brake for a Team
54mSeeing Like a Programmer - Resiliency, Limits, And Moral Hazards In SE
