software-architecture
2
总安装量
2
周安装量
#75470
全站排名
安装命令
npx skills add https://github.com/simplerick0/com.ackhax.configs --skill software-architecture
Agent 安装分布
cursor
2
mcpjam
1
claude-code
1
junie
1
windsurf
1
zencoder
1
Skill 文档
Software Architecture
Design scalable, maintainable software systems through sound architectural principles.
System Design Process
-
Requirements Analysis
- Functional requirements (features)
- Non-functional requirements (performance, scale, security)
- Constraints (budget, timeline, team skills)
-
High-Level Design
- Component identification
- Data flow mapping
- Integration points
- Technology selection
-
Detailed Design
- API contracts
- Data models
- Sequence diagrams
- Error handling
-
Validation
- Review against requirements
- Identify trade-offs
- Document decisions
Architectural Patterns
Monolith
Best for: Early-stage products, small teams
Trade-offs: Simple to develop, harder to scale independently
Microservices
Best for: Large teams, independent scaling needs
Trade-offs: Complex operations, better team autonomy
Event-Driven
Best for: Decoupled systems, async workflows
Trade-offs: Eventual consistency, good scalability
Layered (N-Tier)
Best for: Clear separation of concerns
Trade-offs: Simple structure, potential performance overhead
API Design
REST Guidelines
- Use nouns for resources:
/users,/orders - HTTP verbs for actions: GET, POST, PUT, DELETE
- Version APIs:
/v1/users - Consistent error responses
GraphQL Guidelines
- Single endpoint
- Client-specified queries
- Strong typing with schema
- Batch requests naturally
Data Modeling
Relational
- Normalize to 3NF by default
- Denormalize for read performance
- Index query patterns
- Consider partitioning for scale
NoSQL Selection
| Type | Use Case |
|---|---|
| Document (MongoDB) | Flexible schema, nested data |
| Key-Value (Redis) | Caching, sessions |
| Column (Cassandra) | Time-series, high write throughput |
| Graph (Neo4j) | Relationships, social networks |
Scalability Patterns
Horizontal Scaling
- Stateless services
- Load balancing
- Database sharding
- Caching layers
Vertical Scaling
- Increase resources
- Optimize algorithms
- Database tuning
- Limited ceiling
Common Bottlenecks
- Database queries (add indexes, cache, read replicas)
- Network latency (CDN, regional deployment)
- CPU-bound operations (async processing, workers)
- Memory (cache eviction, pagination)
Technology Selection
Decision Criteria
- Team expertise
- Community support
- Maturity and stability
- Performance characteristics
- Licensing and cost
Documentation Template
## Decision: [Title]
**Date**: [Date]
**Status**: [Proposed/Accepted/Deprecated]
### Context
[Why is this decision needed?]
### Options Considered
1. [Option A] - [Pros/Cons]
2. [Option B] - [Pros/Cons]
### Decision
[What was decided and why]
### Consequences
[What are the implications?]
Security Considerations
Authentication
- OAuth2/OIDC for third-party auth
- JWT for stateless tokens
- Session cookies for web apps
Authorization
- RBAC for role-based access
- ABAC for attribute-based rules
- Principle of least privilege
Data Protection
- Encrypt at rest and in transit
- Sanitize inputs
- Audit sensitive operations
Documentation Outputs
Architecture Decision Records (ADRs)
- One decision per record
- Include context and alternatives
- Track status over time
System Diagrams
- C4 model (Context, Container, Component, Code)
- Sequence diagrams for flows
- Data flow diagrams
API Documentation
- OpenAPI/Swagger for REST
- GraphQL schema with descriptions
- Example requests/responses