The path
Design Principles
A good design is one that is easy to change. These principles are the tools to get there: clean code, objects that collaborate by sending messages, low coupling and high cohesion. You don't learn them by reading, you learn them by applying them in every kata and every refactor.
Topics
Clean Code
Clean Code, Bad Code, Rot, Big Ball of Mud, Naming, Boy Scout Rule, Broken Window Theory, Functions, Parameters, Comments, Formatting
Encapsulation
Information Hiding
Tell, Don't Ask
Tell, Don't Ask
Law of Demeter
Principle of Least Knowledge
4 Rules of Simple Design
Command Query Separation
Uniform Access Principle
YAGNI
DRY
Don't Repeat Yourself, Incidental Duplication
Balanced Abstraction Principle
Law of Leaky Abstractions
Principle of Least Astonishment
Principle of Least Surprise
SOLID
Single Responsibility Principle, Open-Closed Principle, Liskov Substitution Principle, Interface Segregation Principle, Dependency Inversion Principle, God Objects
Coupling
Levels of Coupling
Cohesion
Levels of Cohesion
Software Design Odors
Rigidity, Fragility, Immobility, Viscosity, Needless Complexity, Needless Repetition, Opacity
Design by Contract
ETC
Easier to Change Principle
Connascence
of Name and Type, of Position, of Value, of Meaning, of Algorithm, of Execution Order, of Timing, of Identity, of Manual Task
Composition over Inheritance
Resources
- Clean Code
Book · Robert C. Martin, Prentice Hall, 2008 · Chapters: 1, 2, 3, 4, 5, 6 · 102 pages
- Clean Coders Episode 1: Clean Code
Video · 54 min
- Clean Coders Episode 2: Names
Video · 44 min
- Clean Coders Episode 3: Functions
Video · 3 h
- Clean Coders Episode 4: Function Structure
Video · 2 h 9 min
- Clean Coders Episode 5: Form
Video · 1 h 56 min
- Agile Principles, Patterns, and Practices in C#
Book · Robert C. Martin, Micah Martin, Prentice Hall, 2006 · Chapters: 7, 8, 9, 10, 11, 12 · 93 pages
- Clean Coders Episode 9: Single Responsibility Principle
Video · 1 h 9 min
- Clean Coders Episode 10: Open Closed Principle
Video · 1 h 2 min
- Clean Coders Episode 11: Liskov Substitution Principle
Video · 1 h 26 min
- Clean Coders Episode 12: The Interface Segregation Principle
Video · 1 h 5 min
- Clean Coders Episode 14: Solid Case Study
Video · 43 min
- The Pragmatic Programmer 20th Edition
Book · Andrew Hunt, David Thomas, Addison-Wesley, 2019 · Chapters: 2, 4, 5, Topic 38 · 119 pages
- Ley de Demeter; Tell, Don’t Ask y God Object
Article · 2 pages
- 4 rules of simple design
Article · 1 pages
- Command/Query Separation
Article · 1 pages
- Tell, Don't Ask
Article · 1 pages
- Uniform Access Principle
Article · 1 pages
- YAGNI
Article · 4 pages
- The DRY principle and incidental duplication
Article · 4 pages
- Bouncer Pattern
Article · 1 pages
- Leaky Abstraction
Article · 1 pages
- Balanced Abstraction Principle
Article · 1 pages
- Principle of Least Astonishment
Article · 1 pages
- Delegation Pattern
Article · 1 pages
- Prefer Composition Over Inheritance
Article · 6 pages
- Avoid implementation Inheritance
Article · 2 pages
Video · 54 min
- Agile Technical Practices Distilled
Book · Pedro Moreira Santos, Marco Consolaro, Alessandro Di Gioia, Leanpub, 2019 · Chapters: VII (Connascence) · 27 pages
Katas to practice



