bookworm-smart-assistant/skills/architect-expert/references/tech-stack-matrix.md

213 lines
6.5 KiB
Markdown
Raw Permalink Normal View History

# 技术栈推荐矩阵
基于黄金路径"主张性"原则,提供经过验证的技术选型推荐。
## 选型原则
1. **优先成熟稳定**:生产验证 > 技术新颖
2. **生态系统完整**:工具链、社区、人才储备
3. **认知负荷最小化**:学习曲线与团队匹配
4. **长期可维护性**:活跃维护、向后兼容
---
## 应用架构模式选型
| 场景特征 | 推荐模式 | 理由 |
|----------|----------|------|
| 早期产品、团队<10人 | **模块化单体** | 快速迭代避免分布式复杂性 |
| 成熟产品、多团队并行 | **微服务** | 独立部署,团队自治 |
| 事件驱动、高弹性需求 | **Serverless** | 按需扩展,成本优化 |
| 遗留系统现代化 | **绞杀者模式** | 渐进式迁移,风险可控 |
### 架构决策树
```
项目类型?
├── MVP/早期产品
│ └── 推荐: 模块化单体 (Next.js/Rails/Django)
├── 成长期产品
│ ├── 需要独立扩展?
│ │ ├── 是 → 微服务 (容器化)
│ │ └── 否 → 继续单体,关注模块边界
└── 成熟产品
└── 按领域边界拆分微服务
```
---
## 后端技术栈
### Tier 1: 首选推荐
| 场景 | 推荐栈 | 理由 |
|------|--------|------|
| 通用Web服务 | **Go + Gin/Echo** | 高性能、部署简单、并发模型清晰 |
| 快速开发 | **Python + FastAPI** | 开发效率、类型提示、异步支持 |
| 企业级应用 | **Java 21+ + Spring Boot 3** | 生态成熟、人才充足、长期支持 |
| 高并发/实时 | **Node.js + NestJS** | 事件驱动、TypeScript支持 |
### Tier 2: 特定场景
| 场景 | 推荐栈 | 适用条件 |
|------|--------|----------|
| 系统级性能 | **Rust + Axum** | 团队有Rust经验性能敏感 |
| .NET生态 | **C# + ASP.NET Core** | 现有.NET投资Windows生态 |
| 函数计算 | **TypeScript + AWS Lambda** | Serverless优先架构 |
---
## 前端技术栈
### 核心框架
| 场景 | 推荐栈 | 理由 |
|------|--------|------|
| 通用SPA | **React 18+ + TypeScript** | 生态最大、人才最多、灵活性高 |
| 全栈一体 | **Next.js 14+ (App Router)** | SSR/SSG、API路由、优化内置 |
| 渐进增强 | **Vue 3 + Nuxt 3** | 学习曲线平缓、官方全家桶 |
| 高性能需求 | **Svelte + SvelteKit** | 编译时优化、bundle更小 |
### 样式方案
| 优先级 | 方案 | 适用场景 |
|--------|------|----------|
| 1 | **Tailwind CSS** | 通用首选,原子化、一致性好 |
| 2 | **CSS Modules + Sass** | 需要传统CSS组织方式 |
| 3 | **styled-components** | 动态样式需求、CSS-in-JS偏好 |
### 状态管理
| 复杂度 | 推荐方案 | 说明 |
|--------|----------|------|
| 简单 | React内置 (useState/useContext) | 避免过度工程 |
| 中等 | **Zustand** | 轻量、直观、TypeScript友好 |
| 复杂 | **Redux Toolkit + RTK Query** | 完整工具链、中间件生态 |
---
## 数据层
### 关系型数据库
| 场景 | 推荐 | 理由 |
|------|------|------|
| 通用OLTP | **PostgreSQL 16+** | 功能丰富、JSONB支持、扩展生态 |
| 高并发读写 | **MySQL 8+ / PlanetScale** | 成熟稳定、分布式扩展方案 |
| 嵌入式/边缘 | **SQLite** | 零配置、高可靠 |
### NoSQL数据库
| 场景 | 推荐 | 理由 |
|------|------|------|
| 文档存储 | **MongoDB Atlas** | 灵活Schema、托管服务成熟 |
| 缓存 | **Redis 7+** | 数据结构丰富、集群支持 |
| 搜索 | **Elasticsearch / OpenSearch** | 全文搜索、日志分析 |
| 时序数据 | **TimescaleDB / InfluxDB** | 时序优化、压缩高效 |
### 消息队列
| 场景 | 推荐 | 理由 |
|------|------|------|
| 通用异步 | **Apache Kafka** | 高吞吐、持久化、生态丰富 |
| 轻量级 | **Redis Streams** | 已有Redis、需求简单 |
| 云原生 | **AWS SQS / GCP Pub/Sub** | 托管服务、免运维 |
---
## 基础设施
### 容器与编排
| 层级 | 推荐 | 说明 |
|------|------|------|
| 容器运行时 | **Docker / containerd** | 行业标准 |
| 编排平台 | **Kubernetes (托管)** | EKS/GKE/AKS优先避免自建 |
| 轻量替代 | **Docker Compose + Swarm** | 小规模、快速起步 |
### 基础设施即代码
| 场景 | 推荐 | 理由 |
|------|------|------|
| 多云/通用 | **Terraform** | 生态最大、状态管理成熟 |
| AWS专用 | **AWS CDK (TypeScript)** | 类型安全、与AWS深度集成 |
| Kubernetes | **Helm + Kustomize** | 模板化、环境差异管理 |
### GitOps工具
| 推荐 | 适用场景 |
|------|----------|
| **ArgoCD** | Kubernetes原生、UI友好、多集群 |
| **Flux v2** | 轻量、GitOps Toolkit、可组合 |
---
## 开发者工具链
### CI/CD
| 场景 | 推荐 | 理由 |
|------|------|------|
| GitHub生态 | **GitHub Actions** | 深度集成、市场丰富 |
| 自托管 | **GitLab CI** | 完整DevOps平台 |
| 企业级 | **Jenkins + BlueOcean** | 灵活可控、插件生态 |
### 可观测性
| 层面 | 推荐 | 说明 |
|------|------|------|
| 统一采集 | **OpenTelemetry** | 厂商中立、标准化 |
| 指标 | **Prometheus + Grafana** | 开源标准、告警成熟 |
| 日志 | **Loki / Elasticsearch** | 与Grafana集成 / 功能丰富 |
| 追踪 | **Jaeger / Tempo** | 分布式追踪、开源方案 |
| 托管方案 | **Datadog / New Relic** | 一站式、减少运维负担 |
### 开发者门户
| 推荐 | 说明 |
|------|------|
| **Backstage** | Spotify开源、事实标准、插件生态 |
| **Port** | SaaS方案、快速上手 |
---
## 安全工具链
| 阶段 | 工具 | 用途 |
|------|------|------|
| 代码扫描 | **Semgrep / SonarQube** | SAST静态分析 |
| 依赖检查 | **Snyk / Dependabot** | SCA漏洞扫描 |
| 容器安全 | **Trivy / Grype** | 镜像漏洞扫描 |
| 密钥检测 | **GitLeaks / TruffleHog** | 防止密钥泄露 |
| 密钥管理 | **HashiCorp Vault** | 集中式密钥管理 |
| 策略引擎 | **OPA / Kyverno** | 策略即代码 |
---
## 技术选型决策模板
每项技术选型须记录:
```markdown
## 技术选型: [名称]
### 背景
[为什么需要做这个决策]
### 选项分析
| 选项 | 优势 | 劣势 | 风险 |
|------|------|------|------|
| A | | | |
| B | | | |
### 决策
选择 [X],理由:[简述核心理由]
### 后果
- 正面:[预期收益]
- 负面:[需要接受的权衡]
### 验证计划
[如何验证决策正确性]
```