Inheritance is a fundamental concept in object-oriented programming that allows a new class to be based on an existing class, inheriting its properties and methods. It's like a trust fund kid getting a "small loan" of a million dollars from their parents to start a business - they didn't earn it, but they get to use it anyway.
"I was trying to debug this legacy codebase, but it's a tangled mess of inheritance hierarchies that makes spaghetti code look like a Michelin-starred dish."
"Yeah, I used inheritance to create a subclass for my new feature, but now I'm spending more time fixing bugs in the superclass than actually implementing the feature itself."
Designed Inheritance: Martin Fowler discusses the debate between Open Inheritance and Designed Inheritance, and the importance of encapsulation in API design. He suggests a compromise that balances safety and flexibility. Read more
Is Design Dead?: This article explores how Extreme Programming (XP) approaches software design differently, revitalizing the concept of evolutionary design. It covers practices that make evolution a viable design strategy. Read more
Evolutionary Design: Fowler's website provides a guide covering key aspects of evolutionary design, such as evolutionary database design, patterns of legacy displacement, and abundant mutation. Explore the topic
Note: the Developer Dictionary is in Beta. Please direct feedback to skye@statsig.com.