| ▲ | ted_dunning 2 hours ago | |
A bad abstraction would have caused many updates in many places because the API would never quite stabilize due to having been a force-fit from the start. A uses the abstraction, but finds the API doesn't work. Fixes that. That causes B to have to make a tracking change which induces a bug. B realizes that the API isn't quite right. Fixes it. That causes A and C to make tracking changes. These induce more bugs. C fixes the abstraction to avoid these cases. This breaks A and B so they decline to update. And so on. This is what a bad abstraction looks like. API "fixes" bouncing around the code as they reflect off of the bad abstraction. | ||