AgentSkillsCN

architecture

系统设计模式与架构决策

SKILL.md
--- frontmatter
name: architecture
description: System design patterns and architecture decisions

Architecture Patterns

System design for Vue3 + ASP.NET applications.


Layered Architecture

code
┌─────────────────────────────────────┐
│         Presentation (Vue3)         │
├─────────────────────────────────────┤
│          API (Controllers)          │
├─────────────────────────────────────┤
│        Business Logic (Services)    │
├─────────────────────────────────────┤
│         Data Access (Repositories)  │
├─────────────────────────────────────┤
│          Database (SQL Server)      │
└─────────────────────────────────────┘

Frontend Architecture

code
src/
├── components/     # Reusable UI components
├── composables/    # Shared logic (useXxx)
├── views/          # Page components
├── stores/         # Pinia stores
├── api/            # API client
├── types/          # TypeScript types
└── router/         # Vue Router

Backend Architecture

code
src/
├── Controllers/    # HTTP endpoints
├── Services/       # Business logic
├── Repositories/   # Data access
├── Models/         # Domain models
├── DTOs/           # Data transfer objects
└── Infrastructure/ # Cross-cutting concerns

Communication Patterns

PatternUse Case
REST APIStandard CRUD operations
SignalRReal-time updates
Background JobsAsync processing
Message QueueEvent-driven systems

Decision Matrix

DecisionOption AOption B
State managementPiniaComposables
API callsAxiosFetch
FormsVeeValidateNative
TestingVitestJest

Scaling Considerations

LayerStrategy
FrontendCDN, code splitting
APIHorizontal scaling, load balancer
DatabaseRead replicas, caching
BackgroundWorker processes

DO / DON'T

✅ Do❌ Don't
Clear layer separationMixed concerns
Dependency injectionHard dependencies
Interface-based designConcrete dependencies