Skip to content

ALL-ABST1001 · abstraction_quality

Judge whether an abstraction reduces total system complexity.

This is a contextual rule for all languages. Read its implementation.

Compare interface size, hidden complexity, caller knowledge, change reasons, duplication, failure behavior, and plausible direct alternatives. The criteria separately observe hidden complexity, interface stability, leaked caller knowledge, demonstrated variation, independent change causes, and unowned shared knowledge.

Findings cite interface members, callers, leaked details, changes, and duplicated knowledge.

Thin protocol adapters can remain shallow when they isolate an external boundary.

A storage interface hiding retries and provider details is useful. A generic manager whose callers pass provider-specific flags is leaky.

  • Cites “A Philosophy of Software Design”, deep modules
  • Cites “Practical Object-Oriented Design”
  • Cites “Clean Architecture”