jargon

Comparison

Leaky abstractionvsLevel of abstraction

Leaky abstraction

the ORM hid the SQL right up until you had to read the query plan to fix a timeout.

An abstraction that mostly hides the thing underneath, until the thing underneath misbehaves and you have to understand both. All non-trivial abstractions leak; the useful question is where and how loudly. It matters when choosing a tool because a leaky abstraction does not save you from learning what is beneath it, it only delays the learning to the worst possible moment, which is an incident.

Full entry →

Level of abstraction

the function reads like a sentence for three lines and then drops into byte offsets.

How far a piece of code sits from the machine, and whether the pieces sitting next to each other sit at the same distance. Code that mixes levels is hard to read because every few lines the reader has to change what kind of thing they are thinking about. The same idea governs conversations: a design review where one person is discussing team ownership and another is discussing connection pools is not a disagreement, it is an altitude mismatch.

Full entry →

Related comparisons