Emergent Design
summary
Argues that design should emerge from code using measurable techniques: run cyclomatic-complexity and afferent-coupling tools (CKJM, Sonar), spot hotspots like UIBean (53 cyclomatic, 22 afferent) in Struts, extract the duplicated URI-params logic and shave off several thousand lines and several hundred complexity points, refactor composed methods into small units, favor TDD (typical method complexity ~1.5–2 vs 8–15 for non-TDD), use annotations, lambdas or command patterns, and treat spikes to find the last responsible moment.
AI-written summary · about
chapters (14)
- 0:00Start
- 3:42The final goal of any engineering activity is some type of documentation
- 4:28manufacturing for: physical things
- 5:08software manufacturing
- 13:03idiomatic patterns
- 16:43technical debt
- 18:49negotiating repayment
- 25:38Emergent Design Accelerators
- 25:48test driven design
- 35:17afferent coupling
- 39:04evaluate. *Params?
- 41:01idiomatic "unit of work" pattern
- 43:30abstraction styles
- 44:16collaborative diffusion
related talks
40mBarely Enough Design
50mIntentional Code - Minimalism in a World of Dogmatic Design
01h 01mDesigning for complexity
27mDesigning Even Larger (JavaScript) Applications
44mDependencies; Devil or Darling?
58mIntentional Code - Minimalism in a World of Dogmatic Design
57mDesign Patterns: Head-first vs Emergent
54mGreater Quality Through Tactical Domain-Driven Design
