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

213 lines
6.5 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 技术栈推荐矩阵
基于黄金路径"主张性"原则,提供经过验证的技术选型推荐。
## 选型原则
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/SSGAPI路由优化内置 |
| 渐进增强 | **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],理由:[简述核心理由]
### 后果
- 正面:[预期收益]
- 负面:[需要接受的权衡]
### 验证计划
[如何验证决策正确性]
```