software-architecture

Solid

System design patterns, Clean Architecture, SOLID principles, domain modeling. Use when making architectural decisions, designing new modules, refactoring a tangled codebase, or reviewing system design.

AI & Automation 30 stars 9 forks Updated 5 days ago MIT

Install

View on GitHub

Quality Score: 82/100

Stars 20%
50
Recency 20%
100
Frontmatter 20%
70
Documentation 15%
100
Issue Health 10%
80
License 10%
100
Description 5%
100

Skill Content

# Software Architecture ## Clean Architecture Layers ``` ┌─────────────────────────────────────────────┐ │ Frameworks & Drivers │ ← NestJS, TypeORM, Express ├─────────────────────────────────────────────┤ │ Interface Adapters │ ← Controllers, Repositories, Presenters ├─────────────────────────────────────────────┤ │ Application Layer │ ← Use Cases, Application Services ├─────────────────────────────────────────────┤ │ Domain Layer │ ← Entities, Value Objects, Domain Services └─────────────────────────────────────────────┘ Dependency Rule: outer layers depend on inner layers — NEVER the reverse. ``` ## Domain Layer ### Entities ```typescript // domain/user/user.entity.ts // Entities contain identity and business rules. No framework dependencies. export class User { private constructor( public readonly id: UserId, public readonly email: Email, private _name: string, private _role: UserRole, public readonly createdAt: Date, ) {} static create(props: { id: UserId email: Email name: string role?: UserRole }): User { if (!props.name.trim()) { throw new DomainError('Name cannot be empty') } return new User( props.id, props.email, props.name.trim(), props.role ?? UserRole.USER, new Date(), ) } get name(): string { return this._name } get role(): UserRole { return this....

Details

Author
sabahattink
Repository
sabahattink/antigravity-fullstack-hq
Created
8 months ago
Last Updated
5 days ago
Language
PowerShell
License
MIT

Integrates with

Similar Skills

Semantically similar based on skill content — not just same category