A Brewer's Guide to Filtering out Complexity and...
summary
Concrete outcome first a toy coffee machine is built then evolved until complexity metrics force a redesign using tests and SimpleCov, flog for ABC scores, and churn analysis to guide work. The repo shows numbers: a single method starts at 5.0, grows past 20 after seven commits and nine conditionals, then drops to 2.2 after splitting into six classes. The fix is explicit: rehydration to reveal abstractions, extract polymorphic Beverage classes, add a factory with a No Object fallback and self registration, and use a churn vs complexity chart to prioritize fixes.
AI-written summary · about
chapters (9)
- 0:00Filtering complexity in Ruby
- 4:37Coffee machine demo
- 8:41Recognizing complexity thresholds
- 13:16Rehydrating code for abstractions
- 17:12Refactoring with polymorphism
- 23:35Scaling complexity analysis
- 27:11Prioritizing refactoring with churn
- 28:14Key takeaways
- 30:43Q&A
related talks
34mA Brewer’s Guide to Filtering out Complexity and Churn
55mAll TheLittle Things
49mBetter software design with domain modelling
45mConquering complexity: refactoring JavaScript projects
50mEmergent Design
01h 01mFight Complexity with Functional Programming
01h 26mChaos Development: Removing Software as the Inhibitor of Agile
38mGet a Whiff of This
