Skip to content

ALL-ARCH0005 · abstraction_nothing_depends_on

Report a module written as a contract that no other module in this repository imports.

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

An abstraction earns its cost by being depended upon. Where abstractness A is high and afferent coupling is zero, nobody took the promise up, which puts the module in the far corner Martin calls the zone of uselessness. It is the mirror of the concrete module everything leans on, and it is scaffolding somebody built for a second implementation that never arrived.

Both halves are required. Afferent coupling has to be zero, so a widely implemented base class is never reported, and A has to reach minimum_abstractness, so a module of plain functions that happens to be a leaf is left alone. Read against the main sequence this is the same finding as a large D on the abstract side, since a module nothing imports and that imports anything has I of one and therefore D equal to its own A.

Continue with evidence and references, or open the examples.