structural-design-principles
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
In object-oriented programming (TypeScript/React): Apply traditional OO
More from thebushidocollective/han
android-jetpack-compose
Use when building Android UIs with Jetpack Compose, managing state with remember/mutableStateOf, or implementing declarative UI patterns.
1.1Kfastapi-async-patterns
Use when FastAPI async patterns for building high-performance APIs. Use when handling concurrent requests and async operations.
785storybook-story-writing
Use when creating or modifying Storybook stories for components. Ensures stories follow CSF3 format, properly showcase component variations, and build successfully.
487atomic-design-fundamentals
Use when applying Atomic Design methodology to organize UI components into quarks, atoms, molecules, organisms, templates, and pages. Core principles and hierarchy.
364solid-principles
Use during implementation when designing modules, functions, and components requiring SOLID principles for maintainable, flexible architecture.
248angular-rxjs-patterns
Use when handling async operations in Angular applications with observables, operators, and subjects.
216