Go Ahead, Make a Mess
summary
Argues that messes are inevitable and shows concrete OOD fixes: a game’s Shock#cost starts as one ugly method, then a case statement for four shock types creates “meta knowledge” and new dependencies. Refactors extract each calculation into its own class, add a factory via constantize (or lookup) to map type→class, and apply replace conditionals with polymorphism. Result: cost logic becomes pluggable, each of the four costers changes independently, caller no longer needs edits when shock types are added or removed.
AI-written summary · about
chapters (17)
- 0:00The sad app story
- 1:34When delight turns to despair
- 2:55Understanding the mess
- 4:25The concept of stability
- 5:52Designing for the future
- 7:13Example: The omega mess
- 8:55Visualizing dependencies
- 10:25Messages over code
- 12:05Mapping knowledge
- 14:20The cost of inaction
- 16:21Example: Meta knowledge
- 18:39Removing dependencies
- 21:30Composition over behavior
- 23:54Using factories
- 26:07The power of duck typing
- 29:08Lessons from experience
- 31:24Q&A and final thoughts
related talks
43mGo Ahead, Make a Mess
52mChaos Development: Removing software as the inhibitor of Agile
32mThe Evolution of Object-Oriented Programming
50mThe Anatomy of Business Conditions
06mØ
27mClean Code: Applying Object Oriented Principles
52mBreaking Bad Code: From simple problems to complicated solutions and back
32mEffective problem solving
