frontend-patterns/canon/Relations.md

72 lines
1.4 KiB
Markdown
Raw Normal View History

# Pattern Relations
The language is primarily a graph.
## Core relations
### requires
Pattern A depends on the presence of Pattern B or on the context created by B.
### enables
Applying A makes B possible or substantially easier.
### creates-context-for
A changes the system such that B becomes a relevant subsequent decision.
This is especially important for generative sequences.
### refines
A is a more specific realization of B.
### generalizes
A captures the common structure of several more specific patterns.
### complements
A and B solve different parts of a larger problem and commonly reinforce each other.
### alternative-to
A and B address substantially the same problem using different trade-offs.
### conflicts-with
The assumptions or consequences of A and B are structurally incompatible or create severe tension.
### commonly-combined-with
Empirical relation based on frequent co-occurrence.
### implemented-by
Links a pattern to technologies or concrete mechanisms.
### observed-in
Links a pattern to known systems or architectures.
## Relation semantics
Relations should be directional where possible.
For example:
```text
Server Authority
creates-context-for → Server Projection
```
is more informative than:
```text
Server Authority
related-to ↔ Server Projection
```
Avoid a generic `related-to` relation unless no stronger relation can be justified.