structural-design-principles
Installation
SKILL.md
Structural Design Principles
These principles originated in object-oriented design but apply to any programming paradigm . They're about code structure, not paradigm.
Paradigm Translations
In functional programming (Elixir), they manifest as:
- Composition Over Inheritance → Function composition, module composition, pipe operators
- Law of Demeter → Minimize coupling between data structures, delegate to owning modules
- Tell, Don't Ask → Push logic to the module owning the data type
- Encapsulation → Module boundaries, immutability, pattern matching, opaque types