-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathvalid-specification.module.yml
More file actions
32 lines (32 loc) · 1.46 KB
/
valid-specification.module.yml
File metadata and controls
32 lines (32 loc) · 1.46 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
id: "principle/architecture/separation-of-concerns"
version: "1.0.0"
schemaVersion: "1.0"
shape: specification
declaredDirectives:
required: [goal, constraints]
optional: [principles, examples]
meta:
name: "Separation of Concerns"
description: "A specification that mandates decomposing systems so each part addresses a single concern."
semantic: |
Separation of Concerns (SoC) specification describing decomposition strategies, boundaries, cohesion, coupling,
module interfaces, testability, maintainability, refactoring, layering, and ownership. Applies to services, modules,
and UI components. Emphasizes single-purpose units, stable interfaces, and clear dependency direction.
tags:
- architecture
- design-principles
- modularity
license: "MIT"
authors:
- "Jane Doe <jane.doe@example.com>"
homepage: "https://github.com/example/modules"
body:
goal: |
Define mandatory rules to ensure each component addresses a single well-bounded responsibility to reduce coupling and improve maintainability.
constraints:
- Components MUST encapsulate a single responsibility and expose a minimal interface.
- Cross-cutting concerns MUST be factored into dedicated modules (e.g., logging, auth).
- Dependencies MUST flow in one direction within a layer; cycles are forbidden.
principles:
- Prefer composition over inheritance to maintain explicit boundaries.
- Favor pure functions and immutability at boundaries for easier testing.