Core Software Design Principles for Programmers
summary
Argues concrete rules: every piece of knowledge needs a single authoritative source (DRY) — illustrates a shipping app that duplicated validation in Java and JavaScript and suggests Ajax, code generation or writing validation once in Kotlin that compiles to JVM and JS. Recommends write tests first and automate repetitive tasks (automations saved time and increased company profit). Warns against huge functions (example of a 40,000-line method refactored down to 30,000), advocates SLAP, OCP via interfaces, LSP (inheritance only for substitutability) and DIP for decoupling and easier testing.
AI-written summary · about
chapters (12)
- 0:00Introduction to design principles
- 1:05Why design principles matter
- 2:52DRY principle explained
- 9:16Automation and DRY effort
- 12:07YAGNI principle and minimalism
- 16:01Single responsibility principle
- 26:46SLAP and function cohesion
- 38:11Open/Closed principle
- 43:07Liskov Substitution principle
- 47:27Dependency Inversion principle
- 51:42Applying principles wisely
- 55:15Q&A and closing
related talks
01h 03mTactical Design
45mBeyond design patterns and principles - writing good OO code
39mClean, Concise, Collaborative Code
32mTimeless Design Principles
20mGood Code is a Balancing Act
53mIntentional Code - Minimalism in a World of Dogmatic Design
50mThe Art of Clean Code
54mStarting at the Beginning (of Design)
