Simple Object-Oriented Design

by MaurĂ­cio Aniche

Software Development

Book Details

Book Title

Simple Object-Oriented Design: Create clean, maintainable applications

Author

MaurĂ­cio Aniche

Publisher

Manning Publications

Publication Date

2024

ISBN

9781633437999

Number of Pages

356

Language

English

Format

PDF

File Size

4.49MB

Subject

Programming

Table of Contents

  • Contents
  • Copyright
  • Dedication
  • Front Matter
  • Chapter 1. It’s All About Managing Complexity
  • 1.1 Object-Oriented Design and the Test of Time
  • 1.2 Designing Simple Object-Oriented Systems
  • 1.3 Simple Design as a Day-to-Day Activity
  • 1.4 A Short Dive into the Architecture of an Information System
  • 1.5 The Example Project: PeopleGrow!
  • 1.6 Exercises
  • Summary
  • Chapter 2. Making Code Small
  • 2.1 Make Units of Code Small
  • 2.2 Make Code Readable and Documented
  • 2.3 Move New Complexity Away from Existing Classes
  • 2.4 Exercises
  • Summary
  • Chapter 3. Keeping Objects Consistent
  • 3.1 Ensure Consistency at All Times
  • 3.2 Design Effective Data Validation Mechanisms
  • 3.3 Encapsulate State Checks
  • 3.4 Provide Only Getters and Setters That Matter
  • 3.5 Model Aggregates to Ensure Invariants in Clusters of Objects
  • 3.6 Exercises
  • Summary
  • Chapter 4. Managing Dependencies
  • 4.1 Separate High-Level and Low-Level Code
  • 4.2 Avoid Coupling to Details or Things You Don’t Need
  • 4.3 Break Down Classes That Depend on Too Many Other Classes
  • 4.4 Inject Dependencies, aka Dependency Injection
  • 4.5 Exercises
  • Summary
  • Chapter 5. Designing Good Abstractions
  • 5.1 Design Abstractions and Extension Points
  • 5.2 Generalize Important Business Rules
  • 5.3 Prefer Simple Abstractions
  • 5.4 Exercises
  • Summary
  • Chapter 6. Handling External Dependencies and Infrastructure
  • 6.1 Separate Infrastructure from the Domain Code
  • 6.2 Use the Infrastructure Fully
  • 6.3 Only Depend on Things You Own
  • 6.4 Encapsulate Low-Level Infrastructure Errors into High-Level Domain Errors
  • 6.5 Exercises
  • Summary
  • Chapter 7. Achieving Modularization
  • 7.1 Build Deep Modules
  • 7.2 Design Clear Interfaces
  • 7.3 No Intimacy Between Modules
  • 7.4 Exercises
  • Summary
  • Chapter 8. Being Pragmatic
  • 8.1 Be Pragmatic and Go Only as Far as You Must
  • 8.2 Refactor Aggressively but in Small Steps
  • 8.3 Accept That Your Code Won’t Ever Be Perfect
  • 8.4 Consider Redesigns
  • 8.5 You Owe This to Junior Developers
  • 8.6 References
  • 8.7 Exercises
  • Summary
  • Index