Co-change coupling from Git history: bricks that keep changing in the same commits are coupled, whatever their requires say. The pairs worth reporting are those with no dependency path between them, which is coupling the source doesn't show.
Co-change coupling from Git history: bricks that keep changing in the same commits are coupled, whatever their requires say. The pairs worth reporting are those with no dependency path between them, which is coupling the source doesn't show.
Cohesion within bricks, from the symbols each definition references.
Cohesion within bricks, from the symbols each definition references. - Cohesion: references to the brick's own namespaces / references to any workspace namespace. References to other libraries don't count.
Connascence between bricks: the static kinds that can be read from source. Connascence within a brick is expected; between bricks it is coupling.
Connascence between bricks: the static kinds that can be read from source. Connascence within a brick is expected; between bricks it is coupling. - Position: interface functions that other bricks call with many positional parameters, so callers depend on their order. - Meaning: keywords used in more than one brick, which are usually map keys that the bricks must agree on. - Algorithm: the same code, of at least some size, in more than one brick.
Error surface: the interface definitions of each component that can throw. A definition throws if its body contains throw, or refers to a definition that throws, in its own brick or another. Catching isn't taken into account, so this is an upper bound.
Error surface: the interface definitions of each component that can throw. A definition throws if its body contains throw, or refers to a definition that throws, in its own brick or another. Catching isn't taken into account, so this is an upper bound.
Brick dependency metrics from namespace requires, after Robert Martin's package metrics, adapted to Polylith: a brick depends on an interface, and so on every component that implements it.
findings collects what the threshold component checks: the findings of each metric of :finding and :count kind (see metrics/metrics), each with the :brick it belongs to and what reports show of it.
Brick dependency metrics from namespace requires, after Robert Martin's package metrics, adapted to Polylith: a brick depends on an interface, and so on every component that implements it. - Afferent (Ca): bricks that depend on this brick's interface. - Efferent (Ce): interfaces this brick depends on. - Instability: Ce / (Ca + Ce), undefined for a brick with neither. - Abstractness: 1 - interface definitions / all definitions. A small interface over a large implementation is abstract; bases have none. - Cohesion: references to the brick's own namespaces / references to any workspace namespace. - Shared keywords: keywords this brick uses that another brick also uses, usually map keys the bricks must agree on (connascence of meaning). - Libraries: libraries outside the workspace the brick requires, and shared libraries, those another brick also requires. - Error surface: a component's interface definitions that can throw, directly or through what they refer to. - Untested interface: a component's interface definitions that no test in the workspace mentions. - Main-sequence distance: |abstractness + instability - 1| for a component. findings collects what the threshold component checks: the findings of each metric of :finding and :count kind (see metrics/metrics), each with the :brick it belongs to and what reports show of it.
Library spread: the bricks that require each library outside the workspace. A library wrapped by one brick can be replaced or upgraded in one place; one spread across bricks, such as a database driver, means a missing gateway component.
Library spread: the bricks that require each library outside the workspace. A library wrapped by one brick can be replaced or upgraded in one place; one spread across bricks, such as a database driver, means a missing gateway component.
Map namespaces to Polylith interfaces.
Map namespaces to Polylith interfaces.
Tests seen from the workspace: interface definitions no test mentions, and tests that reach into another brick's implementation rather than its interface.
Tests seen from the workspace: interface definitions no test mentions, and tests that reach into another brick's implementation rather than its interface.
cljdoc builds & hosts documentation for Clojure/Script libraries
| Ctrl+k | Jump to recent docs |
| ← | Move to previous article |
| → | Move to next article |
| Ctrl+/ | Jump to the search field |