Właśnie przeczytałem stary wpis znaleziony na blogu Joel on Software.
Wpis daje parę przykładów tłumaczących „prawo przeciekających abstrakcji”. Chodzi mniej więcej o to, że mimo iż korzystamy z abstrakcji, to by poradzić sobie w trudnych sytuacjach ciągle musimy rozumieć mechanizmy, które kryją się za abstrakcją.
All non-trivial abstractions, to some degree, are leaky.
Wszystkie nie trywialne abstrakcje, do pewnego stopnia przeciekają.
Np abstrakcja TCP pretenduje, że można coś przesłać przez sieć w sposób, który gwarantuje dostarczenie. Jednak TCP jest zbudowane przy użyciu protokołu IP, który takiej gwarancji nie daje. Korzystając z TCP możemy się więc spotkać z sytuacją, że coś nie zostaje dostarczone, żeby zrozumieć czemu musimy sobie zdawać sprawę z istnienia IP.