By the wonderful Sandi Metz.
Design is writing code that is easy to change today and cheap to change in the future
"Others are mucking it up" - Good design can be good enough so that others making changes don't go right to the wrong options. It takes intention, but is worth it vs the cost of not doing it.
Notes:
- Choosing Relationships
- Testing Keypoints
- Chapter 1. Object-Oriented Design
- Chapter 2. Designing Classes with a Single Responsibility
- Chapter 3. Managing Dependencies
- Chapter 4. Creating Flexible Interfaces
- Chapter 5. Reducing Costs with Duck Typing
- Chapter 6. Acquiring Behavior Through Inheritance
- Chapter 7. Sharing Role Behavior with Modules
- Chapter 8. Combining Objects with Composition
- Chapter 9. Designing Cost-Effective Tests
Additional notes can be found in the Ruby Rogues ep 87 notes
