mirror of
https://github.com/azaion/gps-denied-desktop.git
synced 2026-04-22 15:06:35 +00:00
8a284eb106
rework rulels
138 lines
3.4 KiB
Markdown
138 lines
3.4 KiB
Markdown
# Tech Stack Selection
|
|
|
|
## Initial data:
|
|
- Problem description: `@_docs/00_problem/problem_description.md`
|
|
- Restrictions: `@_docs/00_problem/restrictions.md`
|
|
- Acceptance criteria: `@_docs/00_problem/acceptance_criteria.md`
|
|
- Security approach: `@_docs/00_problem/security_approach.md`
|
|
- Solution draft: `@_docs/01_solution/solution.md`
|
|
|
|
## Role
|
|
You are a software architect evaluating technology choices
|
|
|
|
## Task
|
|
- Evaluate technology options against requirements
|
|
- Consider team expertise and learning curve
|
|
- Assess long-term maintainability
|
|
- Document selection rationale
|
|
|
|
## Output
|
|
|
|
### Requirements Analysis
|
|
|
|
#### Functional Requirements
|
|
| Requirement | Tech Implications |
|
|
|-------------|-------------------|
|
|
| [From acceptance criteria] | |
|
|
|
|
#### Non-Functional Requirements
|
|
| Requirement | Tech Implications |
|
|
|-------------|-------------------|
|
|
| Performance | |
|
|
| Scalability | |
|
|
| Security | |
|
|
| Maintainability | |
|
|
|
|
#### Constraints
|
|
| Constraint | Impact on Tech Choice |
|
|
|------------|----------------------|
|
|
| [From restrictions] | |
|
|
|
|
### Technology Evaluation
|
|
|
|
#### Programming Language
|
|
|
|
| Option | Pros | Cons | Score (1-5) |
|
|
|--------|------|------|-------------|
|
|
| | | | |
|
|
|
|
**Selection**: [Language]
|
|
**Rationale**: [Why this choice]
|
|
|
|
#### Framework
|
|
|
|
| Option | Pros | Cons | Score (1-5) |
|
|
|--------|------|------|-------------|
|
|
| | | | |
|
|
|
|
**Selection**: [Framework]
|
|
**Rationale**: [Why this choice]
|
|
|
|
#### Database
|
|
|
|
| Option | Pros | Cons | Score (1-5) |
|
|
|--------|------|------|-------------|
|
|
| | | | |
|
|
|
|
**Selection**: [Database]
|
|
**Rationale**: [Why this choice]
|
|
|
|
#### Infrastructure/Hosting
|
|
|
|
| Option | Pros | Cons | Score (1-5) |
|
|
|--------|------|------|-------------|
|
|
| | | | |
|
|
|
|
**Selection**: [Platform]
|
|
**Rationale**: [Why this choice]
|
|
|
|
#### Key Libraries/Dependencies
|
|
|
|
| Category | Library | Version | Purpose | Alternatives Considered |
|
|
|----------|---------|---------|---------|------------------------|
|
|
| | | | | |
|
|
|
|
### Evaluation Criteria
|
|
|
|
Rate each technology option against these criteria:
|
|
1. **Fitness for purpose**: Does it meet functional requirements?
|
|
2. **Performance**: Can it meet performance requirements?
|
|
3. **Security**: Does it have good security track record?
|
|
4. **Maturity**: Is it stable and well-maintained?
|
|
5. **Community**: Active community and documentation?
|
|
6. **Team expertise**: Does team have experience?
|
|
7. **Cost**: Licensing, hosting, operational costs?
|
|
8. **Scalability**: Can it grow with the project?
|
|
|
|
### Technology Stack Summary
|
|
|
|
```
|
|
Language: [Language] [Version]
|
|
Framework: [Framework] [Version]
|
|
Database: [Database] [Version]
|
|
Cache: [Cache solution]
|
|
Message Queue: [If applicable]
|
|
CI/CD: [Platform]
|
|
Hosting: [Platform]
|
|
Monitoring: [Tools]
|
|
```
|
|
|
|
### Risk Assessment
|
|
|
|
| Technology | Risk | Mitigation |
|
|
|------------|------|------------|
|
|
| | | |
|
|
|
|
### Learning Requirements
|
|
|
|
| Technology | Team Familiarity | Training Needed |
|
|
|------------|-----------------|-----------------|
|
|
| | High/Med/Low | Yes/No |
|
|
|
|
### Decision Record
|
|
|
|
**Decision**: [Summary of tech stack]
|
|
**Date**: [YYYY-MM-DD]
|
|
**Participants**: [Who was involved]
|
|
**Status**: Approved / Pending Review
|
|
|
|
Store output to `_docs/01_solution/tech_stack.md`
|
|
|
|
## Notes
|
|
- Avoid over-engineering - choose simplest solution that meets requirements
|
|
- Consider total cost of ownership, not just initial development
|
|
- Prefer proven technologies over cutting-edge unless required
|
|
- Document trade-offs for future reference
|
|
- Ask questions about team expertise and constraints
|
|
|