Leaky abstraction is a term used to describe an abstraction that exposes details and limitations of its underlying implementation to the client code, breaking the illusion of simplicity. It's like buying a Tesla and realizing you still have to deal with flat tires and traffic jams, even though you thought you were leaving all that behind.
"I thought using this new ORM would make my database code cleaner, but it turned out to be a leaky abstraction when I had to debug a gnarly SQL query it generated behind the scenes."
"The new microservices architecture promised to make our system more scalable and maintainable, but the complex inter-service communication ended up being a leaky abstraction that caused more headaches than it solved."
The Law of Leaky Abstractions by Joel Spolsky provides an in-depth explanation of leaky abstractions and why they are inevitable in complex systems.
Leaky Abstractions by Hackernoon discusses how leaky abstractions can lead to performance issues and unexpected behavior in software systems.
The Myth of the Perfect Abstraction by Bryan Cantrill is a talk that explores the trade-offs and limitations of abstractions in software design, including the concept of leaky abstractions.
Note: the Developer Dictionary is in Beta. Please direct feedback to skye@statsig.com.